mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1202 lines
37 KiB
1202 lines
37 KiB
/////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// olectl.h OLE Custom Control interfaces
|
|
//
|
|
// OLE Version 2.0
|
|
//
|
|
// Copyright (c) 1992-1994, Microsoft Corp. All rights reserved.
|
|
//
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
#ifndef _OLECTL_H_
|
|
#define _OLECTL_H_
|
|
|
|
|
|
#ifndef __MKTYPLIB__
|
|
|
|
// Set packing to 8
|
|
#ifdef _WIN32
|
|
#ifndef RC_INVOKED
|
|
#pragma pack(8)
|
|
#endif // not RC_INVOKED
|
|
#endif // _WIN32
|
|
|
|
#ifndef INITGUID
|
|
#include <olectlid.h>
|
|
#endif
|
|
|
|
|
|
#ifndef _WIN32
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// Typedefs for characters and strings in interfaces
|
|
|
|
typedef char OLECHAR;
|
|
typedef OLECHAR FAR* LPOLESTR;
|
|
typedef const OLECHAR FAR* LPCOLESTR;
|
|
|
|
#endif // not _WIN32
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// Typedefs for TEXTMETRIC structures
|
|
|
|
#if defined(_WIN32) && !defined(OLE2ANSI)
|
|
typedef TEXTMETRICW TEXTMETRICOLE;
|
|
#else
|
|
typedef TEXTMETRIC TEXTMETRICOLE;
|
|
#endif
|
|
|
|
typedef TEXTMETRICOLE FAR* LPTEXTMETRICOLE;
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// Typedefs for interfaces
|
|
|
|
#ifdef __cplusplus
|
|
interface IOleControl;
|
|
interface IOleControlSite;
|
|
interface ISimpleFrameSite;
|
|
interface IPersistStreamInit;
|
|
interface IPropertyNotifySink;
|
|
interface IProvideClassInfo;
|
|
interface IConnectionPointContainer;
|
|
interface IEnumConnectionPoints;
|
|
interface IConnectionPoint;
|
|
interface IEnumConnections;
|
|
interface IClassFactory2;
|
|
interface ISpecifyPropertyPages;
|
|
interface IPerPropertyBrowsing;
|
|
interface IPropertyPageSite;
|
|
interface IPropertyPage;
|
|
interface IPropertyPage2;
|
|
interface IFont;
|
|
interface IFontDisp;
|
|
interface IPicture;
|
|
interface IPictureDisp;
|
|
#else
|
|
typedef interface IOleControl IOleControl;
|
|
typedef interface IOleControlSite IOleControlSite;
|
|
typedef interface ISimpleFrameSite ISimpleFrameSite;
|
|
typedef interface IPersistStreamInit IPersistStreamInit;
|
|
typedef interface IPropertyNotifySink IPropertyNotifySink;
|
|
typedef interface IProvideClassInfo IProvideClassInfo;
|
|
typedef interface IConnectionPointContainer IConnectionPointContainer;
|
|
typedef interface IEnumConnectionPoints IEnumConnectionPoints;
|
|
typedef interface IConnectionPoint IConnectionPoint;
|
|
typedef interface IEnumConnections IEnumConnections;
|
|
typedef interface IClassFactory2 IClassFactory2;
|
|
typedef interface ISpecifyPropertyPages ISpecifyPropertyPages;
|
|
typedef interface IPerPropertyBrowsing IPerPropertyBrowsing;
|
|
typedef interface IPropertyPageSite IPropertyPageSite;
|
|
typedef interface IPropertyPage IPropertyPage;
|
|
typedef interface IPropertyPage2 IPropertyPage2;
|
|
typedef interface IFont IFont;
|
|
typedef interface IFontDisp IFontDisp;
|
|
typedef interface IPicture IPicture;
|
|
typedef interface IPictureDisp IPictureDisp;
|
|
#endif
|
|
|
|
typedef IOleControl FAR* LPOLECONTROL;
|
|
typedef IOleControlSite FAR* LPOLECONTROLSITE;
|
|
typedef ISimpleFrameSite FAR* LPSIMPLEFRAMESITE;
|
|
typedef IPersistStreamInit FAR* LPPERSISTSTREAMINIT;
|
|
typedef interface IPropertyNotifySink FAR* LPPROPERTYNOTIFYSINK;
|
|
typedef IProvideClassInfo FAR* LPPROVIDECLASSINFO;
|
|
typedef IConnectionPointContainer FAR* LPCONNECTIONPOINTCONTAINER;
|
|
typedef IEnumConnectionPoints FAR* LPENUMCONNECTIONPOINTS;
|
|
typedef IConnectionPoint FAR* LPCONNECTIONPOINT;
|
|
typedef IEnumConnections FAR* LPENUMCONNECTIONS;
|
|
typedef IClassFactory2 FAR* LPCLASSFACTORY2;
|
|
typedef ISpecifyPropertyPages FAR* LPSPECIFYPROPERTYPAGES;
|
|
typedef IPerPropertyBrowsing FAR* LPPERPROPERTYBROWSING;
|
|
typedef IPropertyPageSite FAR* LPPROPERTYPAGESITE;
|
|
typedef IPropertyPage FAR* LPPROPERTYPAGE;
|
|
typedef IPropertyPage2 FAR* LPPROPERTYPAGE2;
|
|
typedef IFont FAR* LPFONT;
|
|
typedef IFontDisp FAR* LPFONTDISP;
|
|
typedef IPicture FAR* LPPICTURE;
|
|
typedef IPictureDisp FAR* LPPICTUREDISP;
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// Typedefs for structs
|
|
|
|
typedef struct tagPOINTF FAR* LPPOINTF;
|
|
typedef struct tagCONTROLINFO FAR* LPCONTROLINFO;
|
|
typedef struct tagCONNECTDATA FAR* LPCONNECTDATA;
|
|
typedef struct tagLICINFO FAR* LPLICINFO;
|
|
typedef struct tagCAUUID FAR* LPCAUUID;
|
|
typedef struct tagCALPOLESTR FAR* LPCALPOLESTR;
|
|
typedef struct tagCADWORD FAR* LPCADWORD;
|
|
typedef struct tagOCPFIPARAMS FAR* LPOCPFIPARAMS;
|
|
typedef struct tagPROPPAGEINFO FAR* LPPROPPAGEINFO;
|
|
typedef struct tagFONTDESC FAR* LPFONTDESC;
|
|
typedef struct tagPICTDESC FAR* LPPICTDESC;
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// Typedefs for standard scalar types
|
|
|
|
typedef DWORD OLE_COLOR;
|
|
typedef long OLE_XPOS_PIXELS;
|
|
typedef long OLE_YPOS_PIXELS;
|
|
typedef long OLE_XSIZE_PIXELS;
|
|
typedef long OLE_YSIZE_PIXELS;
|
|
typedef long OLE_XPOS_HIMETRIC;
|
|
typedef long OLE_YPOS_HIMETRIC;
|
|
typedef long OLE_XSIZE_HIMETRIC;
|
|
typedef long OLE_YSIZE_HIMETRIC;
|
|
typedef float OLE_XPOS_CONTAINER;
|
|
typedef float OLE_YPOS_CONTAINER;
|
|
typedef float OLE_XSIZE_CONTAINER;
|
|
typedef float OLE_YSIZE_CONTAINER;
|
|
typedef enum { triUnchecked = 0, triChecked = 1, triGray = 2 } OLE_TRISTATE;
|
|
typedef BOOL OLE_OPTEXCLUSIVE;
|
|
typedef BOOL OLE_CANCELBOOL;
|
|
typedef BOOL OLE_ENABLEDEFAULTBOOL;
|
|
typedef UINT OLE_HANDLE;
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// FACILITY_CONTROL status codes
|
|
|
|
#ifndef FACILITY_CONTROL
|
|
#define FACILITY_CONTROL 0xa
|
|
#endif
|
|
|
|
#define STD_CTL_SCODE(n) MAKE_SCODE(SEVERITY_ERROR, FACILITY_CONTROL, n)
|
|
#define CTL_E_ILLEGALFUNCTIONCALL STD_CTL_SCODE(5)
|
|
#define CTL_E_OVERFLOW STD_CTL_SCODE(6)
|
|
#define CTL_E_OUTOFMEMORY STD_CTL_SCODE(7)
|
|
#define CTL_E_DIVISIONBYZERO STD_CTL_SCODE(11)
|
|
#define CTL_E_OUTOFSTRINGSPACE STD_CTL_SCODE(14)
|
|
#define CTL_E_OUTOFSTACKSPACE STD_CTL_SCODE(28)
|
|
#define CTL_E_BADFILENAMEORNUMBER STD_CTL_SCODE(52)
|
|
#define CTL_E_FILENOTFOUND STD_CTL_SCODE(53)
|
|
#define CTL_E_BADFILEMODE STD_CTL_SCODE(54)
|
|
#define CTL_E_FILEALREADYOPEN STD_CTL_SCODE(55)
|
|
#define CTL_E_DEVICEIOERROR STD_CTL_SCODE(57)
|
|
#define CTL_E_FILEALREADYEXISTS STD_CTL_SCODE(58)
|
|
#define CTL_E_BADRECORDLENGTH STD_CTL_SCODE(59)
|
|
#define CTL_E_DISKFULL STD_CTL_SCODE(61)
|
|
#define CTL_E_BADRECORDNUMBER STD_CTL_SCODE(63)
|
|
#define CTL_E_BADFILENAME STD_CTL_SCODE(64)
|
|
#define CTL_E_TOOMANYFILES STD_CTL_SCODE(67)
|
|
#define CTL_E_DEVICEUNAVAILABLE STD_CTL_SCODE(68)
|
|
#define CTL_E_PERMISSIONDENIED STD_CTL_SCODE(70)
|
|
#define CTL_E_DISKNOTREADY STD_CTL_SCODE(71)
|
|
#define CTL_E_PATHFILEACCESSERROR STD_CTL_SCODE(75)
|
|
#define CTL_E_PATHNOTFOUND STD_CTL_SCODE(76)
|
|
#define CTL_E_INVALIDPATTERNSTRING STD_CTL_SCODE(93)
|
|
#define CTL_E_INVALIDUSEOFNULL STD_CTL_SCODE(94)
|
|
#define CTL_E_INVALIDFILEFORMAT STD_CTL_SCODE(321)
|
|
#define CTL_E_INVALIDPROPERTYVALUE STD_CTL_SCODE(380)
|
|
#define CTL_E_INVALIDPROPERTYARRAYINDEX STD_CTL_SCODE(381)
|
|
#define CTL_E_SETNOTSUPPORTEDATRUNTIME STD_CTL_SCODE(382)
|
|
#define CTL_E_SETNOTSUPPORTED STD_CTL_SCODE(383)
|
|
#define CTL_E_NEEDPROPERTYARRAYINDEX STD_CTL_SCODE(385)
|
|
#define CTL_E_SETNOTPERMITTED STD_CTL_SCODE(387)
|
|
#define CTL_E_GETNOTSUPPORTEDATRUNTIME STD_CTL_SCODE(393)
|
|
#define CTL_E_GETNOTSUPPORTED STD_CTL_SCODE(394)
|
|
#define CTL_E_PROPERTYNOTFOUND STD_CTL_SCODE(422)
|
|
#define CTL_E_INVALIDCLIPBOARDFORMAT STD_CTL_SCODE(460)
|
|
#define CTL_E_INVALIDPICTURE STD_CTL_SCODE(481)
|
|
#define CTL_E_PRINTERERROR STD_CTL_SCODE(482)
|
|
#define CTL_E_CANTSAVEFILETOTEMP STD_CTL_SCODE(735)
|
|
#define CTL_E_SEARCHTEXTNOTFOUND STD_CTL_SCODE(744)
|
|
#define CTL_E_REPLACEMENTSTOOLONG STD_CTL_SCODE(746)
|
|
|
|
#define CUSTOM_CTL_SCODE(n) MAKE_SCODE(SEVERITY_ERROR, FACILITY_CONTROL, n)
|
|
#define CTL_E_CUSTOM_FIRST CUSTOM_CTL_SCODE(600)
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// IClassFactory2 status codes
|
|
|
|
#define CLASS_E_NOTLICENSED (CLASSFACTORY_E_FIRST+2)
|
|
// class is not licensed for use
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// IConnectionPoint status codes
|
|
|
|
#define CONNECT_E_FIRST MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x0200)
|
|
#define CONNECT_E_LAST MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x020F)
|
|
#define CONNECT_S_FIRST MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, 0x0200)
|
|
#define CONNECT_S_LAST MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, 0x020F)
|
|
|
|
#define CONNECT_E_NOCONNECTION (CONNECT_E_FIRST+0)
|
|
// there is no connection for this connection id
|
|
|
|
#define CONNECT_E_ADVISELIMIT (CONNECT_E_FIRST+1)
|
|
// this implementation's limit for advisory connections has been reached
|
|
|
|
#define CONNECT_E_CANNOTCONNECT (CONNECT_E_FIRST+2)
|
|
// connection attempt failed
|
|
|
|
#define CONNECT_E_OVERRIDDEN (CONNECT_E_FIRST+3)
|
|
// must use a derived interface to connect
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// DllRegisterServer/DllUnregisterServer status codes
|
|
|
|
#define SELFREG_E_FIRST MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x0200)
|
|
#define SELFREG_E_LAST MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x020F)
|
|
#define SELFREG_S_FIRST MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, 0x0200)
|
|
#define SELFREG_S_LAST MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, 0x020F)
|
|
|
|
#define SELFREG_E_TYPELIB (SELFREG_E_FIRST+0)
|
|
// failed to register/unregister type library
|
|
|
|
#define SELFREG_E_CLASS (SELFREG_E_FIRST+1)
|
|
// failed to register/unregister class
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// IPerPropertyBrowsing status codes
|
|
|
|
#define PERPROP_E_FIRST MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x0200)
|
|
#define PERPROP_E_LAST MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x020F)
|
|
#define PERPROP_S_FIRST MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, 0x0200)
|
|
#define PERPROP_S_LAST MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, 0x020F)
|
|
|
|
#define PERPROP_E_NOPAGEAVAILABLE (PERPROP_E_FIRST+0)
|
|
// no page available for requested property
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// OLEMISC_ constants
|
|
|
|
#define OLEMISC_INVISIBLEATRUNTIME 0x00000400
|
|
#define OLEMISC_ALWAYSRUN 0x00000800
|
|
#define OLEMISC_ACTSLIKEBUTTON 0x00001000
|
|
#define OLEMISC_ACTSLIKELABEL 0x00002000
|
|
#define OLEMISC_NOUIACTIVATE 0x00004000
|
|
#define OLEMISC_ALIGNABLE 0x00008000
|
|
#define OLEMISC_SIMPLEFRAME 0x00010000
|
|
#define OLEMISC_SETCLIENTSITEFIRST 0x00020000
|
|
#define OLEMISC_IMEMODE 0x00040000
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// OLEIVERB_ constants
|
|
|
|
#ifndef OLEIVERB_PROPERTIES
|
|
#define OLEIVERB_PROPERTIES (-7L)
|
|
#endif
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// Variant type (VT_) tags for property sets
|
|
|
|
#define VT_STREAMED_PROPSET 73 // [P] Stream contains a property set
|
|
#define VT_STORED_PROPSET 74 // [P] Storage contains a property set
|
|
#define VT_BLOB_PROPSET 75 // [P] Blob contains a property set
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// Variant type (VT_) tags that are just aliases for others
|
|
|
|
#define VT_COLOR VT_I4
|
|
#define VT_XPOS_PIXELS VT_I4
|
|
#define VT_YPOS_PIXELS VT_I4
|
|
#define VT_XSIZE_PIXELS VT_I4
|
|
#define VT_YSIZE_PIXELS VT_I4
|
|
#define VT_XPOS_HIMETRIC VT_I4
|
|
#define VT_YPOS_HIMETRIC VT_I4
|
|
#define VT_XSIZE_HIMETRIC VT_I4
|
|
#define VT_YSIZE_HIMETRIC VT_I4
|
|
#define VT_TRISTATE VT_I2
|
|
#define VT_OPTEXCLUSIVE VT_BOOL
|
|
#define VT_FONT VT_DISPATCH
|
|
#define VT_PICTURE VT_DISPATCH
|
|
|
|
#ifdef _WIN32
|
|
#define VT_HANDLE VT_I4
|
|
#else
|
|
#define VT_HANDLE VT_I2
|
|
#endif
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// Reflected Window Message IDs
|
|
|
|
#define OCM__BASE (WM_USER+0x1c00)
|
|
#define OCM_COMMAND (OCM__BASE + WM_COMMAND)
|
|
|
|
#ifdef _WIN32
|
|
#define OCM_CTLCOLORBTN (OCM__BASE + WM_CTLCOLORBTN)
|
|
#define OCM_CTLCOLOREDIT (OCM__BASE + WM_CTLCOLOREDIT)
|
|
#define OCM_CTLCOLORDLG (OCM__BASE + WM_CTLCOLORDLG)
|
|
#define OCM_CTLCOLORLISTBOX (OCM__BASE + WM_CTLCOLORLISTBOX)
|
|
#define OCM_CTLCOLORMSGBOX (OCM__BASE + WM_CTLCOLORMSGBOX)
|
|
#define OCM_CTLCOLORSCROLLBAR (OCM__BASE + WM_CTLCOLORSCROLLBAR)
|
|
#define OCM_CTLCOLORSTATIC (OCM__BASE + WM_CTLCOLORSTATIC)
|
|
#else
|
|
#define OCM_CTLCOLOR (OCM__BASE + WM_CTLCOLOR)
|
|
#endif
|
|
|
|
#define OCM_DRAWITEM (OCM__BASE + WM_DRAWITEM)
|
|
#define OCM_MEASUREITEM (OCM__BASE + WM_MEASUREITEM)
|
|
#define OCM_DELETEITEM (OCM__BASE + WM_DELETEITEM)
|
|
#define OCM_VKEYTOITEM (OCM__BASE + WM_VKEYTOITEM)
|
|
#define OCM_CHARTOITEM (OCM__BASE + WM_CHARTOITEM)
|
|
#define OCM_COMPAREITEM (OCM__BASE + WM_COMPAREITEM)
|
|
#define OCM_HSCROLL (OCM__BASE + WM_HSCROLL)
|
|
#define OCM_VSCROLL (OCM__BASE + WM_VSCROLL)
|
|
#define OCM_PARENTNOTIFY (OCM__BASE + WM_PARENTNOTIFY)
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// Self-registration APIs (to be implemented by server DLL)
|
|
|
|
STDAPI DllRegisterServer(void);
|
|
STDAPI DllUnregisterServer(void);
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// Property frame APIs
|
|
|
|
STDAPI OleCreatePropertyFrame(HWND hwndOwner, UINT x, UINT y,
|
|
LPCOLESTR lpszCaption, ULONG cObjects, LPUNKNOWN FAR* ppUnk, ULONG cPages,
|
|
LPCLSID pPageClsID, LCID lcid, DWORD dwReserved, LPVOID pvReserved);
|
|
|
|
STDAPI OleCreatePropertyFrameIndirect(LPOCPFIPARAMS lpParams);
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// Standard type APIs
|
|
|
|
STDAPI OleTranslateColor(OLE_COLOR clr, HPALETTE hpal, COLORREF* lpcolorref);
|
|
|
|
STDAPI OleCreateFontIndirect(LPFONTDESC lpFontDesc, REFIID riid,
|
|
LPVOID FAR* lplpvObj);
|
|
|
|
STDAPI OleCreatePictureIndirect(LPPICTDESC lpPictDesc, REFIID riid, BOOL fOwn,
|
|
LPVOID FAR* lplpvObj);
|
|
|
|
STDAPI OleLoadPicture(LPSTREAM lpstream, LONG lSize, BOOL fRunmode,
|
|
REFIID riid, LPVOID FAR* lplpvObj);
|
|
|
|
STDAPI_(HCURSOR) OleIconToCursor(HINSTANCE hinstExe, HICON hIcon);
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// POINTF structure
|
|
|
|
typedef struct tagPOINTF
|
|
{
|
|
float x;
|
|
float y;
|
|
|
|
} POINTF;
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CONTROLINFO structure
|
|
|
|
typedef struct tagCONTROLINFO
|
|
{
|
|
ULONG cb; // Structure size
|
|
HACCEL hAccel; // Control mnemonics
|
|
USHORT cAccel; // Number of entries in mnemonics table
|
|
DWORD dwFlags; // Flags chosen from below
|
|
|
|
} CONTROLINFO;
|
|
|
|
#define CTRLINFO_EATS_RETURN 1 // Control doesn't send Return to container
|
|
#define CTRLINFO_EATS_ESCAPE 2 // Control doesn't send Escape to container
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// IOleControl interface
|
|
|
|
#undef INTERFACE
|
|
#define INTERFACE IOleControl
|
|
|
|
DECLARE_INTERFACE_(IOleControl, IUnknown)
|
|
{
|
|
// IUnknown methods
|
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
|
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
|
STDMETHOD_(ULONG,Release)(THIS) PURE;
|
|
|
|
// IOleControl methods
|
|
STDMETHOD(GetControlInfo)(THIS_ LPCONTROLINFO pCI) PURE;
|
|
STDMETHOD(OnMnemonic)(THIS_ LPMSG pMsg) PURE;
|
|
STDMETHOD(OnAmbientPropertyChange)(THIS_ DISPID dispid) PURE;
|
|
STDMETHOD(FreezeEvents)(THIS_ BOOL bFreeze) PURE;
|
|
};
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// IOleControlSite interface
|
|
|
|
#undef INTERFACE
|
|
#define INTERFACE IOleControlSite
|
|
|
|
DECLARE_INTERFACE_(IOleControlSite, IUnknown)
|
|
{
|
|
// IUnknown methods
|
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
|
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
|
STDMETHOD_(ULONG,Release)(THIS) PURE;
|
|
|
|
// IOleControlSite methods
|
|
STDMETHOD(OnControlInfoChanged)(THIS) PURE;
|
|
STDMETHOD(LockInPlaceActive)(THIS_ BOOL fLock) PURE;
|
|
STDMETHOD(GetExtendedControl)(THIS_ LPDISPATCH FAR* ppDisp) PURE;
|
|
STDMETHOD(TransformCoords)(THIS_ POINTL FAR* lpptlHimetric,
|
|
POINTF FAR* lpptfContainer, DWORD flags) PURE;
|
|
STDMETHOD(TranslateAccelerator)(THIS_ LPMSG lpMsg, DWORD grfModifiers)
|
|
PURE;
|
|
STDMETHOD(OnFocus)(THIS_ BOOL fGotFocus) PURE;
|
|
STDMETHOD(ShowPropertyFrame)(THIS) PURE;
|
|
};
|
|
|
|
#define XFORMCOORDS_POSITION 0x1
|
|
#define XFORMCOORDS_SIZE 0x2
|
|
#define XFORMCOORDS_HIMETRICTOCONTAINER 0x4
|
|
#define XFORMCOORDS_CONTAINERTOHIMETRIC 0x8
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// ISimpleFrameSite interface
|
|
|
|
#undef INTERFACE
|
|
#define INTERFACE ISimpleFrameSite
|
|
|
|
DECLARE_INTERFACE_(ISimpleFrameSite, IUnknown)
|
|
{
|
|
// IUnknown methods
|
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
|
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
|
STDMETHOD_(ULONG,Release)(THIS) PURE;
|
|
|
|
// ISimpleFrameSite methods
|
|
STDMETHOD(PreMessageFilter)(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp,
|
|
LRESULT FAR* lplResult, DWORD FAR * lpdwCookie) PURE;
|
|
STDMETHOD(PostMessageFilter)(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp,
|
|
LRESULT FAR* lplResult, DWORD dwCookie) PURE;
|
|
};
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// IPersistStreamInit interface
|
|
|
|
#undef INTERFACE
|
|
#define INTERFACE IPersistStreamInit
|
|
|
|
DECLARE_INTERFACE_(IPersistStreamInit, IPersist)
|
|
{
|
|
// IUnknown methods
|
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
|
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
|
STDMETHOD_(ULONG,Release)(THIS) PURE;
|
|
|
|
// IPersist methods
|
|
STDMETHOD(GetClassID)(THIS_ LPCLSID lpClassID) PURE;
|
|
|
|
// IPersistStreamInit methods
|
|
STDMETHOD(IsDirty)(THIS) PURE;
|
|
STDMETHOD(Load)(THIS_ LPSTREAM pStm) PURE;
|
|
STDMETHOD(Save)(THIS_ LPSTREAM pStm, BOOL fClearDirty) PURE;
|
|
STDMETHOD(GetSizeMax)(THIS_ ULARGE_INTEGER FAR* pcbSize) PURE;
|
|
STDMETHOD(InitNew)(THIS) PURE;
|
|
};
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// IPropertyNotifySink interface
|
|
|
|
#undef INTERFACE
|
|
#define INTERFACE IPropertyNotifySink
|
|
|
|
DECLARE_INTERFACE_(IPropertyNotifySink, IUnknown)
|
|
{
|
|
// IUnknown methods
|
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
|
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
|
STDMETHOD_(ULONG,Release)(THIS) PURE;
|
|
|
|
// IPropertyNotifySink methods
|
|
STDMETHOD(OnChanged)(THIS_ DISPID dispid) PURE;
|
|
STDMETHOD(OnRequestEdit)(THIS_ DISPID dispid) PURE;
|
|
};
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// IProvideClassInfo interface
|
|
|
|
#undef INTERFACE
|
|
#define INTERFACE IProvideClassInfo
|
|
|
|
DECLARE_INTERFACE_(IProvideClassInfo, IUnknown)
|
|
{
|
|
// IUnknown methods
|
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
|
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
|
STDMETHOD_(ULONG,Release)(THIS) PURE;
|
|
|
|
// IProvideClassInfo methods
|
|
STDMETHOD(GetClassInfo)(THIS_ LPTYPEINFO FAR* ppTI) PURE;
|
|
};
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// IConnectionPointContainer interface
|
|
|
|
#undef INTERFACE
|
|
#define INTERFACE IConnectionPointContainer
|
|
|
|
DECLARE_INTERFACE_(IConnectionPointContainer, IUnknown)
|
|
{
|
|
// IUnknown methods
|
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
|
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
|
STDMETHOD_(ULONG,Release)(THIS) PURE;
|
|
|
|
// IConnectionPointContainer methods
|
|
STDMETHOD(EnumConnectionPoints)(THIS_ LPENUMCONNECTIONPOINTS FAR* ppEnum)
|
|
PURE;
|
|
STDMETHOD(FindConnectionPoint)(THIS_ REFIID iid,
|
|
LPCONNECTIONPOINT FAR* ppCP) PURE;
|
|
};
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// IEnumConnectionPoint interface
|
|
|
|
#undef INTERFACE
|
|
#define INTERFACE IEnumConnectionPoints
|
|
|
|
DECLARE_INTERFACE_(IEnumConnectionPoints, IUnknown)
|
|
{
|
|
// IUnknown methods
|
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
|
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
|
STDMETHOD_(ULONG,Release)(THIS) PURE;
|
|
|
|
// IEnumConnectionPoints methods
|
|
STDMETHOD(Next)(THIS_ ULONG cConnections, LPCONNECTIONPOINT FAR* rgpcn,
|
|
ULONG FAR* lpcFetched) PURE;
|
|
STDMETHOD(Skip)(THIS_ ULONG cConnections) PURE;
|
|
STDMETHOD(Reset)(THIS) PURE;
|
|
STDMETHOD(Clone)(THIS_ LPENUMCONNECTIONPOINTS FAR* ppEnum) PURE;
|
|
};
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// IConnectionPoint interface
|
|
|
|
#undef INTERFACE
|
|
#define INTERFACE IConnectionPoint
|
|
|
|
DECLARE_INTERFACE_(IConnectionPoint, IUnknown)
|
|
{
|
|
// IUnknown methods
|
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
|
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
|
STDMETHOD_(ULONG,Release)(THIS) PURE;
|
|
|
|
// IConnectionPoint methods
|
|
STDMETHOD(GetConnectionInterface)(THIS_ IID FAR* pIID) PURE;
|
|
STDMETHOD(GetConnectionPointContainer)(THIS_
|
|
IConnectionPointContainer FAR* FAR* ppCPC) PURE;
|
|
STDMETHOD(Advise)(THIS_ LPUNKNOWN pUnkSink, DWORD FAR* pdwCookie) PURE;
|
|
STDMETHOD(Unadvise)(THIS_ DWORD dwCookie) PURE;
|
|
STDMETHOD(EnumConnections)(THIS_ LPENUMCONNECTIONS FAR* ppEnum) PURE;
|
|
};
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CONNECTDATA structure
|
|
|
|
typedef struct tagCONNECTDATA
|
|
{
|
|
LPUNKNOWN pUnk;
|
|
DWORD dwCookie;
|
|
|
|
} CONNECTDATA;
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// IEnumConnections interface
|
|
|
|
#undef INTERFACE
|
|
#define INTERFACE IEnumConnections
|
|
|
|
DECLARE_INTERFACE_(IEnumConnections, IUnknown)
|
|
{
|
|
// IUnknown methods
|
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
|
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
|
STDMETHOD_(ULONG,Release)(THIS) PURE;
|
|
|
|
// IEnumConnections methods
|
|
STDMETHOD(Next)(THIS_ ULONG cConnections, LPCONNECTDATA rgcd,
|
|
ULONG FAR* lpcFetched) PURE;
|
|
STDMETHOD(Skip)(THIS_ ULONG cConnections) PURE;
|
|
STDMETHOD(Reset)(THIS) PURE;
|
|
STDMETHOD(Clone)(THIS_ LPENUMCONNECTIONS FAR* ppecn) PURE;
|
|
};
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// LICINFO structure
|
|
|
|
typedef struct tagLICINFO
|
|
{
|
|
long cbLicInfo;
|
|
BOOL fRuntimeKeyAvail;
|
|
BOOL fLicVerified;
|
|
|
|
} LICINFO;
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// IClassFactory2 interface
|
|
|
|
#undef INTERFACE
|
|
#define INTERFACE IClassFactory2
|
|
|
|
DECLARE_INTERFACE_(IClassFactory2, IClassFactory)
|
|
{
|
|
// IUnknown methods
|
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
|
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
|
STDMETHOD_(ULONG,Release)(THIS) PURE;
|
|
|
|
// IClassFactory methods
|
|
STDMETHOD(CreateInstance)(THIS_ LPUNKNOWN pUnkOuter, REFIID riid,
|
|
LPVOID FAR* ppvObject) PURE;
|
|
STDMETHOD(LockServer)(THIS_ BOOL fLock) PURE;
|
|
|
|
// IClassFactory2 methods
|
|
STDMETHOD(GetLicInfo)(THIS_ LPLICINFO pLicInfo) PURE;
|
|
STDMETHOD(RequestLicKey)(THIS_ DWORD dwResrved, BSTR FAR* pbstrKey) PURE;
|
|
STDMETHOD(CreateInstanceLic)(THIS_ LPUNKNOWN pUnkOuter,
|
|
LPUNKNOWN pUnkReserved, REFIID riid, BSTR bstrKey,
|
|
LPVOID FAR* ppvObject) PURE;
|
|
};
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CAUUID structure - a counted array of UUIDs
|
|
|
|
#ifndef _tagCAUUID_DEFINED
|
|
#define _tagCAUUID_DEFINED
|
|
#define _CAUUID_DEFINED
|
|
|
|
typedef struct tagCAUUID
|
|
{
|
|
ULONG cElems;
|
|
GUID FAR* pElems;
|
|
|
|
} CAUUID;
|
|
|
|
#endif
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CALPOLESTR structure - a counted array of LPOLESTRs
|
|
|
|
#ifndef _tagCALPOLESTR_DEFINED
|
|
#define _tagCALPOLESTR_DEFINED
|
|
#define _CALPOLESTR_DEFINED
|
|
|
|
typedef struct tagCALPOLESTR
|
|
{
|
|
ULONG cElems;
|
|
LPOLESTR FAR* pElems;
|
|
|
|
} CALPOLESTR;
|
|
|
|
#endif
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CAUUID structure - a counted array of DWORDs
|
|
|
|
#ifndef _tagCADWORD_DEFINED
|
|
#define _tagCADWORD_DEFINED
|
|
#define _CADWORD_DEFINED
|
|
|
|
typedef struct tagCADWORD
|
|
{
|
|
ULONG cElems;
|
|
DWORD FAR* pElems;
|
|
|
|
} CADWORD;
|
|
|
|
#endif
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// OCPFIPARAMS structure - parameters for OleCreatePropertyFrameIndirect
|
|
|
|
typedef struct tagOCPFIPARAMS
|
|
{
|
|
ULONG cbStructSize;
|
|
HWND hWndOwner;
|
|
int x;
|
|
int y;
|
|
LPCOLESTR lpszCaption;
|
|
ULONG cObjects;
|
|
LPUNKNOWN FAR* lplpUnk;
|
|
ULONG cPages;
|
|
CLSID FAR* lpPages;
|
|
LCID lcid;
|
|
DISPID dispidInitialProperty;
|
|
|
|
} OCPFIPARAMS;
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// PROPPAGEINFO structure - information about a property page
|
|
|
|
typedef struct tagPROPPAGEINFO
|
|
{
|
|
size_t cb;
|
|
LPOLESTR pszTitle;
|
|
SIZE size;
|
|
LPOLESTR pszDocString;
|
|
LPOLESTR pszHelpFile;
|
|
DWORD dwHelpContext;
|
|
|
|
} PROPPAGEINFO;
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// ISpecifyPropertyPages interface
|
|
|
|
#undef INTERFACE
|
|
#define INTERFACE ISpecifyPropertyPages
|
|
|
|
DECLARE_INTERFACE_(ISpecifyPropertyPages, IUnknown)
|
|
{
|
|
// IUnknown methods
|
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
|
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
|
STDMETHOD_(ULONG,Release)(THIS) PURE;
|
|
|
|
// ISpecifyPropertyPages interface
|
|
STDMETHOD(GetPages)(THIS_ CAUUID FAR* pPages) PURE;
|
|
};
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// IPerPropertyBrowsing interface
|
|
|
|
#undef INTERFACE
|
|
#define INTERFACE IPerPropertyBrowsing
|
|
|
|
DECLARE_INTERFACE_(IPerPropertyBrowsing, IUnknown)
|
|
{
|
|
// IUnknown methods
|
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
|
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
|
STDMETHOD_(ULONG,Release)(THIS) PURE;
|
|
|
|
// IPerPropertyBrowsing interface
|
|
STDMETHOD(GetDisplayString)(THIS_ DISPID dispid, BSTR FAR* lpbstr) PURE;
|
|
STDMETHOD(MapPropertyToPage)(THIS_ DISPID dispid, LPCLSID lpclsid) PURE;
|
|
STDMETHOD(GetPredefinedStrings)(THIS_ DISPID dispid,
|
|
CALPOLESTR FAR* lpcaStringsOut, CADWORD FAR* lpcaCookiesOut) PURE;
|
|
STDMETHOD(GetPredefinedValue)(THIS_ DISPID dispid, DWORD dwCookie,
|
|
VARIANT FAR* lpvarOut) PURE;
|
|
};
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// IPropertyPageSite interface
|
|
|
|
#undef INTERFACE
|
|
#define INTERFACE IPropertyPageSite
|
|
|
|
DECLARE_INTERFACE_(IPropertyPageSite, IUnknown)
|
|
{
|
|
// IUnknown methods
|
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
|
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
|
STDMETHOD_(ULONG,Release)(THIS) PURE;
|
|
|
|
// IPropertyPageSite methods
|
|
STDMETHOD(OnStatusChange)(THIS_ DWORD flags) PURE;
|
|
STDMETHOD(GetLocaleID)(THIS_ LCID FAR* pLocaleID) PURE;
|
|
STDMETHOD(GetPageContainer)(THIS_ LPUNKNOWN FAR* ppUnk) PURE;
|
|
STDMETHOD(TranslateAccelerator)(THIS_ LPMSG lpMsg) PURE;
|
|
};
|
|
|
|
#define PROPPAGESTATUS_DIRTY 0x1 // Values in page have changed
|
|
#define PROPPAGESTATUS_VALIDATE 0x2 // Appropriate time to validate/apply
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// IPropertyPage interface
|
|
|
|
#undef INTERFACE
|
|
#define INTERFACE IPropertyPage
|
|
|
|
DECLARE_INTERFACE_(IPropertyPage, IUnknown)
|
|
{
|
|
// IUnknown methods
|
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
|
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
|
STDMETHOD_(ULONG,Release)(THIS) PURE;
|
|
|
|
// IPropertyPage methods
|
|
STDMETHOD(SetPageSite)(THIS_ LPPROPERTYPAGESITE pPageSite) PURE;
|
|
STDMETHOD(Activate)(THIS_ HWND hwndParent, LPCRECT lprc, BOOL bModal) PURE;
|
|
STDMETHOD(Deactivate)(THIS) PURE;
|
|
STDMETHOD(GetPageInfo)(THIS_ LPPROPPAGEINFO pPageInfo) PURE;
|
|
STDMETHOD(SetObjects)(THIS_ ULONG cObjects, LPUNKNOWN FAR* ppunk) PURE;
|
|
STDMETHOD(Show)(THIS_ UINT nCmdShow) PURE;
|
|
STDMETHOD(Move)(LPCRECT prect) PURE;
|
|
STDMETHOD(IsPageDirty)(THIS) PURE;
|
|
STDMETHOD(Apply)(THIS) PURE;
|
|
STDMETHOD(Help)(THIS_ LPCOLESTR lpszHelpDir) PURE;
|
|
STDMETHOD(TranslateAccelerator)(THIS_ LPMSG lpMsg) PURE;
|
|
};
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// IPropertyPage2 interface
|
|
|
|
#undef INTERFACE
|
|
#define INTERFACE IPropertyPage2
|
|
|
|
DECLARE_INTERFACE_(IPropertyPage2, IPropertyPage)
|
|
{
|
|
// IUnknown methods
|
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
|
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
|
|
STDMETHOD_(ULONG,Release)(THIS) PURE;
|
|
|
|
// IPropertyPage methods
|
|
STDMETHOD(SetPageSite)(THIS_ LPPROPERTYPAGESITE pPageSite) PURE;
|
|
STDMETHOD(Activate)(THIS_ HWND hwndParent, LPCRECT lprc, BOOL bModal) PURE;
|
|
STDMETHOD(Deactivate)(THIS) PURE;
|
|
STDMETHOD(GetPageInfo)(THIS_ LPPROPPAGEINFO pPageInfo) PURE;
|
|
STDMETHOD(SetObjects)(THIS_ ULONG cObjects, LPUNKNOWN FAR* ppunk) PURE;
|
|
STDMETHOD(Show)(THIS_ UINT nCmdShow) PURE;
|
|
STDMETHOD(Move)(LPCRECT prect) PURE;
|
|
STDMETHOD(IsPageDirty)(THIS) PURE;
|
|
STDMETHOD(Apply)(THIS) PURE;
|
|
STDMETHOD(Help)(THIS_ LPCOLESTR lpszHelpDir) PURE;
|
|
STDMETHOD(TranslateAccelerator)(THIS_ LPMSG lpMsg) PURE;
|
|
|
|
// IPropertyPage2 methods
|
|
STDMETHOD(EditProperty)(THIS_ DISPID dispid) PURE;
|
|
};
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// IFont interface
|
|
|
|
#undef INTERFACE
|
|
#define INTERFACE IFont
|
|
|
|
DECLARE_INTERFACE_(IFont, IUnknown)
|
|
{
|
|
// IUnknown methods
|
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
|
|
|
// IFont methods
|
|
STDMETHOD(get_Name)(THIS_ BSTR FAR* pname) PURE;
|
|
STDMETHOD(put_Name)(THIS_ BSTR name) PURE;
|
|
STDMETHOD(get_Size)(THIS_ CY FAR* psize) PURE;
|
|
STDMETHOD(put_Size)(THIS_ CY size) PURE;
|
|
STDMETHOD(get_Bold)(THIS_ BOOL FAR* pbold) PURE;
|
|
STDMETHOD(put_Bold)(THIS_ BOOL bold) PURE;
|
|
STDMETHOD(get_Italic)(THIS_ BOOL FAR* pitalic) PURE;
|
|
STDMETHOD(put_Italic)(THIS_ BOOL italic) PURE;
|
|
STDMETHOD(get_Underline)(THIS_ BOOL FAR* punderline) PURE;
|
|
STDMETHOD(put_Underline)(THIS_ BOOL underline) PURE;
|
|
STDMETHOD(get_Strikethrough)(THIS_ BOOL FAR* pstrikethrough) PURE;
|
|
STDMETHOD(put_Strikethrough)(THIS_ BOOL strikethrough) PURE;
|
|
STDMETHOD(get_Weight)(THIS_ short FAR* pweight) PURE;
|
|
STDMETHOD(put_Weight)(THIS_ short weight) PURE;
|
|
STDMETHOD(get_Charset)(THIS_ short FAR* pcharset) PURE;
|
|
STDMETHOD(put_Charset)(THIS_ short charset) PURE;
|
|
STDMETHOD(get_hFont)(THIS_ HFONT FAR* phfont) PURE;
|
|
STDMETHOD(Clone)(THIS_ IFont FAR* FAR* lplpfont) PURE;
|
|
STDMETHOD(IsEqual)(THIS_ IFont FAR * lpFontOther) PURE;
|
|
STDMETHOD(SetRatio)(THIS_ long cyLogical, long cyHimetric) PURE;
|
|
STDMETHOD(QueryTextMetrics)(THIS_ LPTEXTMETRICOLE lptm) PURE;
|
|
STDMETHOD(AddRefHfont)(THIS_ HFONT hfont) PURE;
|
|
STDMETHOD(ReleaseHfont)(THIS_ HFONT hfont) PURE;
|
|
};
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// IFontDisp interface
|
|
|
|
#undef INTERFACE
|
|
#define INTERFACE IFontDisp
|
|
|
|
DECLARE_INTERFACE_(IFontDisp, IDispatch)
|
|
{
|
|
// IUnknown methods
|
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
|
|
|
// IDispatch methods
|
|
STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
|
|
STDMETHOD(GetTypeInfo)(THIS_ UINT itinfo, LCID lcid,
|
|
ITypeInfo FAR* FAR* pptinfo) PURE;
|
|
STDMETHOD(GetIDsOfNames)(THIS_ REFIID riid, LPOLESTR FAR* rgszNames,
|
|
UINT cNames, LCID lcid, DISPID FAR* rgdispid) PURE;
|
|
STDMETHOD(Invoke)(THIS_ DISPID dispidMember, REFIID riid, LCID lcid,
|
|
WORD wFlags, DISPPARAMS FAR* pdispparams, VARIANT FAR* pvarResult,
|
|
EXCEPINFO FAR* pexcepinfo, UINT FAR* puArgErr) PURE;
|
|
};
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// FONTDESC structure
|
|
|
|
#define FONTSIZE(n) { n##0000, 0 }
|
|
|
|
typedef struct tagFONTDESC
|
|
{
|
|
UINT cbSizeofstruct;
|
|
LPOLESTR lpstrName;
|
|
CY cySize;
|
|
SHORT sWeight;
|
|
SHORT sCharset;
|
|
BOOL fItalic;
|
|
BOOL fUnderline;
|
|
BOOL fStrikethrough;
|
|
|
|
} FONTDESC;
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// Picture attributes
|
|
|
|
#define PICTURE_SCALABLE 0x1l
|
|
#define PICTURE_TRANSPARENT 0x2l
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// IPicture interface
|
|
|
|
#undef INTERFACE
|
|
#define INTERFACE IPicture
|
|
|
|
DECLARE_INTERFACE_(IPicture, IUnknown)
|
|
{
|
|
// IUnknown methods
|
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
|
|
|
// IPicture methods
|
|
STDMETHOD(get_Handle)(THIS_ OLE_HANDLE FAR* phandle) PURE;
|
|
STDMETHOD(get_hPal)(THIS_ OLE_HANDLE FAR* phpal) PURE;
|
|
STDMETHOD(get_Type)(THIS_ short FAR* ptype) PURE;
|
|
STDMETHOD(get_Width)(THIS_ OLE_XSIZE_HIMETRIC FAR* pwidth) PURE;
|
|
STDMETHOD(get_Height)(THIS_ OLE_YSIZE_HIMETRIC FAR* pheight) PURE;
|
|
STDMETHOD(Render)(THIS_ HDC hdc, long x, long y, long cx, long cy,
|
|
OLE_XPOS_HIMETRIC xSrc, OLE_YPOS_HIMETRIC ySrc,
|
|
OLE_XSIZE_HIMETRIC cxSrc, OLE_YSIZE_HIMETRIC cySrc,
|
|
LPCRECT lprcWBounds) PURE;
|
|
STDMETHOD(set_hPal)(THIS_ OLE_HANDLE hpal) PURE;
|
|
STDMETHOD(get_CurDC)(THIS_ HDC FAR * phdcOut) PURE;
|
|
STDMETHOD(SelectPicture)(THIS_
|
|
HDC hdcIn, HDC FAR * phdcOut, OLE_HANDLE FAR * phbmpOut) PURE;
|
|
STDMETHOD(get_KeepOriginalFormat)(THIS_ BOOL * pfkeep) PURE;
|
|
STDMETHOD(put_KeepOriginalFormat)(THIS_ BOOL fkeep) PURE;
|
|
STDMETHOD(PictureChanged)(THIS) PURE;
|
|
STDMETHOD(SaveAsFile)(THIS_ LPSTREAM lpstream, BOOL fSaveMemCopy,
|
|
LONG FAR * lpcbSize) PURE;
|
|
STDMETHOD(get_Attributes)(THIS_ DWORD FAR * lpdwAttr) PURE;
|
|
|
|
};
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// IPictureDisp interface
|
|
|
|
#undef INTERFACE
|
|
#define INTERFACE IPictureDisp
|
|
|
|
DECLARE_INTERFACE_(IPictureDisp, IDispatch)
|
|
{
|
|
// IUnknown methods
|
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
|
|
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
|
|
STDMETHOD_(ULONG, Release)(THIS) PURE;
|
|
|
|
// IDispatch methods
|
|
STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;
|
|
STDMETHOD(GetTypeInfo)(THIS_ UINT itinfo, LCID lcid,
|
|
ITypeInfo FAR* FAR* pptinfo) PURE;
|
|
STDMETHOD(GetIDsOfNames)(THIS_ REFIID riid, LPOLESTR FAR* rgszNames,
|
|
UINT cNames, LCID lcid, DISPID FAR* rgdispid) PURE;
|
|
STDMETHOD(Invoke)(THIS_ DISPID dispidMember, REFIID riid, LCID lcid,
|
|
WORD wFlags, DISPPARAMS FAR* pdispparams, VARIANT FAR* pvarResult,
|
|
EXCEPINFO FAR* pexcepinfo, UINT FAR* puArgErr) PURE;
|
|
};
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// PICTDESC structure
|
|
|
|
#define PICTYPE_UNINITIALIZED ((UINT)-1)
|
|
#define PICTYPE_NONE 0
|
|
#define PICTYPE_BITMAP 1
|
|
#define PICTYPE_METAFILE 2
|
|
#define PICTYPE_ICON 3
|
|
|
|
typedef struct tagPICTDESC
|
|
{
|
|
UINT cbSizeofstruct;
|
|
UINT picType;
|
|
union
|
|
{
|
|
struct
|
|
{
|
|
HBITMAP hbitmap; // Bitmap
|
|
HPALETTE hpal; // Accompanying palette
|
|
} bmp;
|
|
|
|
struct
|
|
{
|
|
HMETAFILE hmeta; // Metafile
|
|
int xExt;
|
|
int yExt; // Extent
|
|
} wmf;
|
|
|
|
struct
|
|
{
|
|
HICON hicon; // Icon
|
|
} icon;
|
|
};
|
|
|
|
} PICTDESC;
|
|
|
|
|
|
#ifdef _WIN32
|
|
#ifndef RC_INVOKED
|
|
#pragma pack()
|
|
#endif // not RC_INVOKED
|
|
#endif // _WIN32
|
|
|
|
#endif // not __MKTYPLIB__
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// Standard dispatch ID constants
|
|
|
|
#define DISPID_AUTOSIZE (-500)
|
|
#define DISPID_BACKCOLOR (-501)
|
|
#define DISPID_BACKSTYLE (-502)
|
|
#define DISPID_BORDERCOLOR (-503)
|
|
#define DISPID_BORDERSTYLE (-504)
|
|
#define DISPID_BORDERWIDTH (-505)
|
|
#define DISPID_DRAWMODE (-507)
|
|
#define DISPID_DRAWSTYLE (-508)
|
|
#define DISPID_DRAWWIDTH (-509)
|
|
#define DISPID_FILLCOLOR (-510)
|
|
#define DISPID_FILLSTYLE (-511)
|
|
#define DISPID_FONT (-512)
|
|
#define DISPID_FORECOLOR (-513)
|
|
#define DISPID_ENABLED (-514)
|
|
#define DISPID_HWND (-515)
|
|
#define DISPID_TABSTOP (-516)
|
|
#define DISPID_TEXT (-517)
|
|
#define DISPID_CAPTION (-518)
|
|
#define DISPID_BORDERVISIBLE (-519)
|
|
|
|
#define DISPID_REFRESH (-550)
|
|
#define DISPID_DOCLICK (-551)
|
|
#define DISPID_ABOUTBOX (-552)
|
|
|
|
#define DISPID_CLICK (-600)
|
|
#define DISPID_DBLCLICK (-601)
|
|
#define DISPID_KEYDOWN (-602)
|
|
#define DISPID_KEYPRESS (-603)
|
|
#define DISPID_KEYUP (-604)
|
|
#define DISPID_MOUSEDOWN (-605)
|
|
#define DISPID_MOUSEMOVE (-606)
|
|
#define DISPID_MOUSEUP (-607)
|
|
#define DISPID_ERROREVENT (-608)
|
|
|
|
#define DISPID_AMBIENT_BACKCOLOR (-701)
|
|
#define DISPID_AMBIENT_DISPLAYNAME (-702)
|
|
#define DISPID_AMBIENT_FONT (-703)
|
|
#define DISPID_AMBIENT_FORECOLOR (-704)
|
|
#define DISPID_AMBIENT_LOCALEID (-705)
|
|
#define DISPID_AMBIENT_MESSAGEREFLECT (-706)
|
|
#define DISPID_AMBIENT_SCALEUNITS (-707)
|
|
#define DISPID_AMBIENT_TEXTALIGN (-708)
|
|
#define DISPID_AMBIENT_USERMODE (-709)
|
|
#define DISPID_AMBIENT_UIDEAD (-710)
|
|
#define DISPID_AMBIENT_SHOWGRABHANDLES (-711)
|
|
#define DISPID_AMBIENT_SHOWHATCHING (-712)
|
|
#define DISPID_AMBIENT_DISPLAYASDEFAULT (-713)
|
|
#define DISPID_AMBIENT_SUPPORTSMNEMONICS (-714)
|
|
#define DISPID_AMBIENT_AUTOCLIP (-715)
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// Dispatch ID constants for font and picture types
|
|
|
|
#define DISPID_FONT_NAME 0
|
|
#define DISPID_FONT_SIZE 2
|
|
#define DISPID_FONT_BOLD 3
|
|
#define DISPID_FONT_ITALIC 4
|
|
#define DISPID_FONT_UNDER 5
|
|
#define DISPID_FONT_STRIKE 6
|
|
#define DISPID_FONT_WEIGHT 7
|
|
#define DISPID_FONT_CHARSET 8
|
|
|
|
#define DISPID_PICT_HANDLE 0
|
|
#define DISPID_PICT_HPAL 2
|
|
#define DISPID_PICT_TYPE 3
|
|
#define DISPID_PICT_WIDTH 4
|
|
#define DISPID_PICT_HEIGHT 5
|
|
#define DISPID_PICT_RENDER 6
|
|
|
|
|
|
#ifdef __MKTYPLIB__
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// Names of modules containing type libraries for standard types
|
|
|
|
#ifdef _WIN32
|
|
#define STDOLE_TLB "stdole32.tlb"
|
|
#else
|
|
#define STDOLE_TLB "stdole.tlb"
|
|
#endif
|
|
|
|
#ifdef _WIN32
|
|
#ifdef _UNICODE
|
|
#ifdef _DEBUG
|
|
#define STDTYPE_TLB "oc30ud.dll"
|
|
#else
|
|
#define STDTYPE_TLB "oc30u.dll"
|
|
#endif
|
|
#else
|
|
#ifdef _DEBUG
|
|
#define STDTYPE_TLB "oc30d.dll"
|
|
#else
|
|
#define STDTYPE_TLB "oc30.dll"
|
|
#endif
|
|
#endif
|
|
#else
|
|
#ifdef _DEBUG
|
|
#define STDTYPE_TLB "oc25d.dll"
|
|
#else
|
|
#define STDTYPE_TLB "oc25.dll"
|
|
#endif
|
|
#endif
|
|
|
|
#endif // __MKTYPLIB__
|
|
|
|
#endif // _OLECTL_H_
|