home *** CD-ROM | disk | FTP | other *** search
/ Beginning C++ Through Gam…rogramming (2nd Edition) / BCGP2E.ISO / bloodshed / devcpp-4.9.9.2_setup.exe / ocidl.h < prev    next >
C/C++ Source or Header  |  2005-01-29  |  30KB  |  838 lines

  1. #ifndef _OCIDL_H
  2. #define _OCIDL_H
  3. #if __GNUC__ >= 3
  4. #pragma GCC system_header
  5. #endif
  6.  
  7. #ifdef __cplusplus
  8. extern "C" {
  9. #endif
  10.  
  11. #include <ole2.h>
  12.  
  13. typedef interface IErrorLog *LPERRORLOG;
  14. typedef interface IPropertyBag *LPPROPERTYBAG;
  15. typedef interface IPropertyBag2 *LPPROPERTYBAG2;
  16. typedef interface IEnumConnections *LPENUMCONNECTIONS;
  17. typedef interface IConnectionPoint *LPCONNECTIONPOINT;
  18. typedef interface IEnumConnectionPoints *LPENUMCONNECTIONPOINTS;
  19. typedef interface IPropertyPageSite *LPPROPERTYPAGESITE;
  20. typedef interface IFont *LPFONT;
  21. typedef interface IFontDisp *LPFONTDISP;
  22. typedef interface IOleUndoManager *LPOLEUNDOMANAGER;
  23.  
  24. #ifndef OLE2ANSI
  25. typedef TEXTMETRICW TEXTMETRICOLE;
  26. #else
  27. typedef TEXTMETRIC TEXTMETRICOLE;
  28. #endif
  29. typedef TEXTMETRICOLE *LPTEXTMETRICOLE;
  30. typedef DWORD OLE_COLOR;
  31. typedef UINT OLE_HANDLE;
  32. typedef long OLE_XPOS_HIMETRIC;
  33. typedef long OLE_YPOS_HIMETRIC;
  34. typedef long OLE_XSIZE_HIMETRIC;
  35. typedef long OLE_YSIZE_HIMETRIC;
  36.  
  37. typedef enum tagREADYSTATE {
  38.     READYSTATE_UNINITIALIZED = 0,
  39.     READYSTATE_LOADING = 1,
  40.     READYSTATE_LOADED = 2,
  41.     READYSTATE_INTERACTIVE = 3,
  42.     READYSTATE_COMPLETE = 4
  43. } READYSTATE;
  44. typedef enum tagPROPBAG2_TYPE {
  45.     PROPBAG2_TYPE_UNDEFINED    = 0,
  46.     PROPBAG2_TYPE_DATA = 1,
  47.     PROPBAG2_TYPE_URL = 2,
  48.     PROPBAG2_TYPE_OBJECT = 3,
  49.     PROPBAG2_TYPE_STREAM = 4,
  50.     PROPBAG2_TYPE_STORAGE = 5,
  51.     PROPBAG2_TYPE_MONIKER = 6
  52. } PROPBAG2_TYPE;
  53. typedef struct tagPROPBAG2
  54. {
  55.     DWORD dwType;
  56.     VARTYPE vt;
  57.     CLIPFORMAT cfType;
  58.     DWORD dwHint;
  59.     LPOLESTR pstrName;
  60.     CLSID clsid;
  61. } PROPBAG2;
  62. typedef enum tagQACONTAINERFLAGS
  63. {
  64.     QACONTAINER_SHOWHATCHING = 1,
  65.     QACONTAINER_SHOWGRABHANDLES = 2,
  66.     QACONTAINER_USERMODE = 4,
  67.     QACONTAINER_DISPLAYASDEFAULT = 8,
  68.     QACONTAINER_UIDEAD = 16,
  69.     QACONTAINER_AUTOCLIP = 32,
  70.     QACONTAINER_MESSAGEREFLECT = 64,
  71.     QACONTAINER_SUPPORTSMNEMONICS = 128
  72. } QACONTAINERFLAGS;
  73. typedef struct tagQACONTAINER
  74. {
  75.     ULONG cbSize;
  76.     interface IOleClientSite *pClientSite;
  77.     interface IAdviseSinkEx *pAdviseSink;
  78.     interface IPropertyNotifySink *pPropertyNotifySink;
  79.     IUnknown *pUnkEventSink;
  80.     DWORD dwAmbientFlags;
  81.     OLE_COLOR colorFore;
  82.     OLE_COLOR colorBack;
  83.     interface IFont *pFont;
  84.     interface IOleUndoManager *pUndoMgr;
  85.     DWORD dwAppearance;
  86.     LONG lcid;
  87.     HPALETTE hpal;
  88.     interface IBindHost *pBindHost;
  89.     interface IOleControlSite *pOleControlSite;
  90.     interface IServiceProvider *pServiceProvider;
  91. } QACONTAINER;
  92. typedef struct tagQACONTROL
  93. {
  94.     ULONG cbSize;
  95.     DWORD dwMiscStatus;
  96.     DWORD dwViewStatus;
  97.     DWORD dwEventCookie;
  98.     DWORD dwPropNotifyCookie;
  99.     DWORD dwPointerActivationPolicy;
  100. } QACONTROL;
  101. typedef struct tagPOINTF {
  102.     float x;
  103.     float y;
  104. } POINTF,*LPPOINTF;
  105. typedef struct tagCONTROLINFO {
  106.     ULONG cb;
  107.     HACCEL hAccel;
  108.     USHORT cAccel;
  109.     DWORD dwFlags;
  110. } CONTROLINFO,*LPCONTROLINFO;
  111. typedef struct tagCONNECTDATA {
  112.     LPUNKNOWN pUnk;
  113.     DWORD dwCookie;
  114. } CONNECTDATA,*LPCONNECTDATA;
  115. typedef struct tagLICINFO {
  116.     long cbLicInfo;
  117.     BOOL fRuntimeKeyAvail;
  118.     BOOL fLicVerified;
  119. } LICINFO,*LPLICINFO;
  120. typedef struct tagCAUUID {
  121.     ULONG cElems;
  122.     GUID *pElems;
  123. } CAUUID,*LPCAUUID;
  124. typedef struct tagCALPOLESTR {
  125.     ULONG cElems;
  126.     LPOLESTR *pElems;
  127. } CALPOLESTR,*LPCALPOLESTR;
  128. typedef struct tagCADWORD {
  129.     ULONG cElems;
  130.     DWORD *pElems;
  131. } CADWORD,*LPCADWORD;
  132. typedef struct tagPROPPAGEINFO {
  133.     ULONG cb;
  134.     LPOLESTR pszTitle;
  135.     SIZE size;
  136.     LPOLESTR pszDocString;
  137.     LPOLESTR pszHelpFile;
  138.     DWORD dwHelpContext;
  139. } PROPPAGEINFO,*LPPROPPAGEINFO;
  140.  
  141. EXTERN_C const IID IID_IOleControl;
  142. #undef INTERFACE
  143. #define INTERFACE IOleControl
  144. DECLARE_INTERFACE_(IOleControl,IUnknown)
  145. {
  146.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  147.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  148.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  149.     STDMETHOD(GetControlInfo)(THIS_ LPCONTROLINFO) PURE;
  150.     STDMETHOD(OnMnemonic)(THIS_ LPMSG) PURE;
  151.     STDMETHOD(OnAmbientPropertyChange)(THIS_ DISPID) PURE;
  152.     STDMETHOD(FreezeEvents)(THIS_ BOOL) PURE;
  153. };
  154.  
  155. EXTERN_C const IID IID_IOleControlSite;
  156. #undef INTERFACE
  157. #define INTERFACE IOleControlSite
  158. DECLARE_INTERFACE_(IOleControlSite,IUnknown)
  159. {
  160.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  161.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  162.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  163.     STDMETHOD(OnControlInfoChanged)(THIS) PURE;
  164.     STDMETHOD(LockInPlaceActive)(THIS_ BOOL) PURE;
  165.     STDMETHOD(GetExtendedControl)(THIS_ LPDISPATCH*) PURE;
  166.     STDMETHOD(TransformCoords)(THIS_ POINTL*,POINTF*,DWORD) PURE;
  167.     STDMETHOD(TranslateAccelerator)(THIS_ LPMSG,DWORD) PURE;
  168.     STDMETHOD(OnFocus)(THIS_ BOOL) PURE;
  169.     STDMETHOD(ShowPropertyFrame)(THIS) PURE;
  170. };
  171.  
  172. #ifdef COBJMACROS
  173. #define IOleControlSite_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
  174. #define IOleControlSite_AddRef(T) (T)->lpVtbl->AddRef(T)
  175. #define IOleControlSite_Release(T) (T)->lpVtbl->Release(T)
  176. #define IOleControlSite_OnControlInfoChanged(T) (T)->lpVtbl->OnControlInfoChanged(T)
  177. #define IOleControlSite_LockInPlaceActive(T,a) (T)->lpVtbl->LockInPlaceActive(T,a)
  178. #define IOleControlSite_GetExtendedControl(T,a) (T)->lpVtbl->GetExtendedControl(T,a)
  179. #define IOleControlSite_TransformCoords(T,a,b,c) (T)->lpVtbl->TransformCoords(T,a,b,c)
  180. #define IOleControlSite_TranslateAccelerator(T,a,b) (T)->lpVtbl->TranslateAccelerator(T,a,b)
  181. #define IOleControlSite_OnFocus(T,a) (T)->lpVtbl->OnFocus(T,a)
  182. #define IOleControlSite_ShowPropertyFrame(T) (T)->lpVtbl->ShowPropertyFrame(T)
  183. #endif
  184.  
  185. EXTERN_C const IID IID_ISimpleFrameSite;
  186. #undef INTERFACE
  187. #define INTERFACE ISimpleFrameSite
  188. DECLARE_INTERFACE_(ISimpleFrameSite,IUnknown)
  189. {
  190.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  191.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  192.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  193.     STDMETHOD(PreMessageFilter)(THIS_ HWND,UINT,WPARAM,LPARAM,LRESULT*,PDWORD) PURE;
  194.     STDMETHOD(PostMessageFilter)(THIS_ HWND,UINT,WPARAM,LPARAM,LRESULT*,DWORD) PURE;
  195. };
  196.  
  197. EXTERN_C const IID IID_IErrorLog;
  198. #undef INTERFACE
  199. #define INTERFACE IErrorLog
  200. DECLARE_INTERFACE_(IErrorLog,IUnknown)
  201. {
  202.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  203.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  204.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  205.     STDMETHOD(AddError)(THIS_ LPCOLESTR,LPEXCEPINFO) PURE;
  206. };
  207.  
  208. EXTERN_C const IID IID_IPropertyBag;
  209. #undef INTERFACE
  210. #define INTERFACE IPropertyBag
  211. DECLARE_INTERFACE_(IPropertyBag,IUnknown)
  212. {
  213.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  214.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  215.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  216.     STDMETHOD(Read)(THIS_ LPCOLESTR,LPVARIANT,LPERRORLOG) PURE;
  217.     STDMETHOD(Write)(THIS_ LPCOLESTR,LPVARIANT) PURE;
  218. };
  219.  
  220. EXTERN_C const IID IID_IPropertyBag2;
  221. #undef INTERFACE
  222. #define INTERFACE IPropertyBag2
  223. DECLARE_INTERFACE_(IPropertyBag2,IUnknown)
  224. {
  225.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  226.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  227.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  228.     STDMETHOD(Read)(THIS_ ULONG,PROPBAG2*,LPERRORLOG,VARIANT*,HRESULT*) PURE;
  229.     STDMETHOD(Write)(THIS_ ULONG,PROPBAG2*,VARIANT*) PURE;
  230.     STDMETHOD(CountProperties)(THIS_ ULONG*) PURE;
  231.     STDMETHOD(GetPropertyInfo)(THIS_ ULONG,ULONG,PROPBAG2*,ULONG*) PURE;
  232.     STDMETHOD(LoadObject)(THIS_ LPCOLESTR,DWORD,IUnknown*,LPERRORLOG) PURE;
  233. };
  234.  
  235. EXTERN_C const IID IID_IPersistPropertyBag;
  236. #undef INTERFACE
  237. #define INTERFACE IPersistPropertyBag
  238. DECLARE_INTERFACE_(IPersistPropertyBag,IPersist)
  239. {
  240.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  241.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  242.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  243.     STDMETHOD(GetClassID)(THIS_ LPCLSID) PURE;
  244.     STDMETHOD(InitNew)(THIS) PURE;
  245.     STDMETHOD(Load)(THIS_ LPPROPERTYBAG,LPERRORLOG) PURE;
  246.     STDMETHOD(Save)(THIS_ LPPROPERTYBAG,BOOL,BOOL) PURE;
  247. };
  248.  
  249. #ifdef COBJMACROS
  250. #define IPersistPropertyBag_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
  251. #define IPersistPropertyBag_AddRef(T) (T)->lpVtbl->AddRef(T)
  252. #define IPersistPropertyBag_Release(T) (T)->lpVtbl->Release(T)
  253. #define IPersistPropertyBag_GetClassID(T,a) (T)->lpVtbl->GetClassID(T,a)
  254. #define IPersistPropertyBag_InitNew(T) (T)->lpVtbl->InitNew(T)
  255. #define IPersistPropertyBag_Load(T,a,b) (T)->lpVtbl->Load(T,a,b)
  256. #define IPersistPropertyBag_Save(T,a,b,c) (T)->lpVtbl->Save(T,a,b,c)
  257. #endif
  258.  
  259. EXTERN_C const IID IID_IPersistPropertyBag2;
  260. #undef INTERFACE
  261. #define INTERFACE IPersistPropertyBag2
  262. DECLARE_INTERFACE_(IPersistPropertyBag2,IPersist)
  263. {
  264.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  265.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  266.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  267.     STDMETHOD(GetClassID)(THIS_ LPCLSID) PURE;
  268.     STDMETHOD(InitNew)(THIS) PURE;
  269.     STDMETHOD(Load)(THIS_ LPPROPERTYBAG2,LPERRORLOG) PURE;
  270.     STDMETHOD(Save)(THIS_ LPPROPERTYBAG2,BOOL,BOOL) PURE;
  271.     STDMETHOD(IsDirty)(THIS) PURE;
  272. };
  273.  
  274. #ifdef COBJMACROS
  275. #define IPersistPropertyBag2_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
  276. #define IPersistPropertyBag2_AddRef(T) (T)->lpVtbl->AddRef(T)
  277. #define IPersistPropertyBag2_Release(T) (T)->lpVtbl->Release(T)
  278. #define IPersistPropertyBag2_GetClassID(T,a) (T)->lpVtbl->GetClassID(T,a)
  279. #define IPersistPropertyBag2_InitNew(T) (T)->lpVtbl->InitNew(T)
  280. #define IPersistPropertyBag2_Load(T,a,b) (T)->lpVtbl->Load(T,a,b)
  281. #define IPersistPropertyBag2_Save(T,a,b,c) (T)->lpVtbl->Save(T,a,b,c)
  282. #define IPersistPropertyBag2_IsDirty(T) (T)->lpVtbl->IsDirty(T)
  283. #endif
  284.  
  285. EXTERN_C const IID IID_IPersistStreamInit;
  286. #undef INTERFACE
  287. #define INTERFACE IPersistStreamInit
  288. DECLARE_INTERFACE_(IPersistStreamInit,IPersist)
  289. {
  290.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  291.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  292.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  293.     STDMETHOD(GetClassID)(THIS_ LPCLSID) PURE;
  294.     STDMETHOD(IsDirty)(THIS) PURE;
  295.     STDMETHOD(Load)(THIS_ LPSTREAM) PURE;
  296.     STDMETHOD(Save)(THIS_ LPSTREAM,BOOL) PURE;
  297.     STDMETHOD(GetSizeMax)(THIS_ PULARGE_INTEGER) PURE;
  298.     STDMETHOD(InitNew)(THIS) PURE;
  299. };
  300.  
  301. EXTERN_C const IID IID_IPersistMemory;
  302. #undef INTERFACE
  303. #define INTERFACE IPersistMemory
  304. DECLARE_INTERFACE_(IPersistMemory,IPersist)
  305. {
  306.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  307.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  308.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  309.     STDMETHOD(GetClassID)(THIS_ LPCLSID) PURE;
  310.     STDMETHOD(IsDirty)(THIS) PURE;
  311.     STDMETHOD(Load)(THIS_ PVOID,ULONG) PURE;
  312.     STDMETHOD(Save)(THIS_ PVOID,BOOL,ULONG) PURE;
  313.     STDMETHOD(GetSizeMax)(THIS_ PULONG) PURE;
  314.     STDMETHOD(InitNew)(THIS) PURE;
  315. };
  316.  
  317. EXTERN_C const IID IID_IPropertyNotifySink;
  318. #undef INTERFACE
  319. #define INTERFACE IPropertyNotifySink
  320. DECLARE_INTERFACE_(IPropertyNotifySink,IUnknown)
  321. {
  322.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  323.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  324.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  325.     STDMETHOD(OnChanged)(THIS_ DISPID) PURE;
  326.     STDMETHOD(OnRequestEdit)(THIS_ DISPID) PURE;
  327. };
  328.  
  329. #ifdef COBJMACROS
  330. #define IPropertyNotifySink_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
  331. #define IPropertyNotifySink_AddRef(T) (T)->lpVtbl->AddRef(T)
  332. #define IPropertyNotifySink_Release(T) (T)->lpVtbl->Release(T)
  333. #define IPropertyNotifySink_OnChanged(T,a) (T)->lpVtbl->OnChanged(T,a)
  334. #define IPropertyNotifySink_OnRequestEdit(T,a) (T)->lpVtbl->OnRequestEdit(T,a)
  335. #endif
  336.  
  337. EXTERN_C const IID IID_IProvideClassInfo;
  338. #undef INTERFACE
  339. #define INTERFACE IProvideClassInfo
  340. DECLARE_INTERFACE_(IProvideClassInfo,IUnknown)
  341. {
  342.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  343.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  344.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  345.     STDMETHOD(GetClassInfo)(THIS_ LPTYPEINFO*) PURE;
  346. };
  347.  
  348. EXTERN_C const IID IID_IProvideClassInfo2;
  349. #undef INTERFACE
  350. #define INTERFACE IProvideClassInfo2
  351. DECLARE_INTERFACE_(IProvideClassInfo2,IProvideClassInfo)
  352. {
  353.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  354.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  355.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  356.     STDMETHOD(GetClassInfo)(THIS_ LPTYPEINFO*) PURE;
  357.     STDMETHOD(GetGUID)(THIS_ DWORD,GUID*) PURE;
  358. };
  359.  
  360. EXTERN_C const IID IID_IConnectionPointContainer;
  361. #undef INTERFACE
  362. #define INTERFACE IConnectionPointContainer
  363. DECLARE_INTERFACE_(IConnectionPointContainer,IUnknown)
  364. {
  365.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  366.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  367.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  368.     STDMETHOD(EnumConnectionPoints)(THIS_ LPENUMCONNECTIONPOINTS*) PURE;
  369.     STDMETHOD(FindConnectionPoint)(THIS_ REFIID,LPCONNECTIONPOINT*) PURE;
  370. };
  371.  
  372. #ifdef COBJMACROS
  373. #define IConnectionPointContainer_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
  374. #define IConnectionPointContainer_AddRef(T) (T)->lpVtbl->AddRef(T)
  375. #define IConnectionPointContainer_Release(T) (T)->lpVtbl->Release(T)
  376. #define IConnectionPointContainer_EnumConnectionPoints(T,a) (T)->lpVtbl->EnumConnectionPoints(T,a)
  377. #define IConnectionPointContainer_FindConnectionPoint(T,a,b) (T)->lpVtbl->FindConnectionPoint(T,a,b)
  378. #endif
  379.  
  380. EXTERN_C const IID IID_IEnumConnectionPoints;
  381. #undef INTERFACE
  382. #define INTERFACE IEnumConnectionPoints
  383. DECLARE_INTERFACE_(IEnumConnectionPoints,IUnknown)
  384. {
  385.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  386.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  387.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  388.     STDMETHOD(Next)(THIS_ ULONG,LPCONNECTIONPOINT*,ULONG*) PURE;
  389.     STDMETHOD(Skip)(THIS_ ULONG) PURE;
  390.     STDMETHOD(Reset)(THIS) PURE;
  391.     STDMETHOD(Clone)(THIS_ LPENUMCONNECTIONPOINTS*) PURE;
  392. };
  393.  
  394. EXTERN_C const IID IID_IConnectionPoint;
  395. #undef INTERFACE
  396. #define INTERFACE IConnectionPoint
  397. DECLARE_INTERFACE_(IConnectionPoint,IUnknown)
  398. {
  399.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  400.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  401.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  402.     STDMETHOD(GetConnectionInterface)(THIS_ IID*) PURE;
  403.     STDMETHOD(GetConnectionPointContainer)(THIS_ IConnectionPointContainer**) PURE;
  404.     STDMETHOD(Advise)(THIS_ LPUNKNOWN,PDWORD) PURE;
  405.     STDMETHOD(Unadvise)(THIS_ DWORD) PURE;
  406.     STDMETHOD(EnumConnections)(THIS_ LPENUMCONNECTIONS*) PURE;
  407. };
  408.  
  409. #ifdef COBJMACROS
  410. #define IConnectionPoint_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
  411. #define IConnectionPoint_AddRef(T) (T)->lpVtbl->AddRef(T)
  412. #define IConnectionPoint_Release(T) (T)->lpVtbl->Release(T)
  413. #define IConnectionPoint_GetConnectionInterface(T,a) (T)->lpVtbl->GetConnectionInterface(T,a)
  414. #define IConnectionPoint_GetConnectionPointContainer(T,a) (T)->lpVtbl->GetConnectionPointContainer(T,a)
  415. #define IConnectionPoint_Advise(T,a,b) (T)->lpVtbl->Advise(T,a,b)
  416. #define IConnectionPoint_Unadvise(T,a) (T)->lpVtbl->Unadvise(T,a)
  417. #define IConnectionPoint_EnumConnections(T,a) (T)->lpVtbl->EnumConnections(T,a)
  418. #endif
  419.  
  420. EXTERN_C const IID IID_IEnumConnections;
  421. #undef INTERFACE
  422. #define INTERFACE IEnumConnections
  423. DECLARE_INTERFACE_(IEnumConnections,IUnknown)
  424. {
  425.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  426.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  427.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  428.     STDMETHOD(Next)(THIS_ ULONG,LPCONNECTDATA,PULONG) PURE;
  429.     STDMETHOD(Skip)(THIS_ ULONG) PURE;
  430.     STDMETHOD(Reset)(THIS) PURE;
  431.     STDMETHOD(Clone)(THIS_ LPENUMCONNECTIONS*) PURE;
  432. };
  433.  
  434. #ifdef COBJMACROS
  435. #define IEnumConnections_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
  436. #define IEnumConnections_AddRef(T) (T)->lpVtbl->AddRef(T)
  437. #define IEnumConnections_Release(T) (T)->lpVtbl->Release(T)
  438. #define IEnumConnections_Next(T,a,b,c) (T)->lpVtbl->Next(T,a,b,c)
  439. #define IEnumConnections_Skip(T,a) (T)->lpVtbl->Skip(T,a)
  440. #define IEnumConnections_Reset(T) (T)->lpVtbl->Reset(T)
  441. #define IEnumConnections_Clone(T,a) (T)->lpVtbl->Clone(T,a)
  442. #endif
  443.  
  444. EXTERN_C const IID IID_IClassFactory2;
  445. #undef INTERFACE
  446. #define INTERFACE IClassFactory2
  447. DECLARE_INTERFACE_(IClassFactory2,IClassFactory)
  448. {
  449.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  450.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  451.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  452.     STDMETHOD(CreateInstance)(THIS_ LPUNKNOWN,REFIID,PVOID*) PURE;
  453.     STDMETHOD(LockServer)(THIS_ BOOL) PURE;
  454.     STDMETHOD(GetLicInfo)(THIS_ LPLICINFO) PURE;
  455.     STDMETHOD(RequestLicKey)(THIS_ DWORD,BSTR*) PURE;
  456.     STDMETHOD(CreateInstanceLic)(THIS_ LPUNKNOWN,LPUNKNOWN,REFIID,BSTR,PVOID*) PURE;
  457. };
  458.  
  459. EXTERN_C const IID IID_ISpecifyPropertyPages;
  460. #undef INTERFACE
  461. #define INTERFACE ISpecifyPropertyPages
  462. DECLARE_INTERFACE_(ISpecifyPropertyPages,IUnknown)
  463. {
  464.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  465.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  466.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  467.     STDMETHOD(GetPages)(THIS_ CAUUID*) PURE;
  468. };
  469.  
  470. EXTERN_C const IID IID_IPerPropertyBrowsing;
  471. #undef INTERFACE
  472. #define INTERFACE IPerPropertyBrowsing
  473. DECLARE_INTERFACE_(IPerPropertyBrowsing,IUnknown)
  474. {
  475.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  476.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  477.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  478.     STDMETHOD(GetDisplayString)(THIS_ DISPID,BSTR*) PURE;
  479.     STDMETHOD(MapPropertyToPage)(THIS_ DISPID,LPCLSID) PURE;
  480.     STDMETHOD(GetPredefinedStrings)(THIS_ DISPID,CALPOLESTR*,CADWORD*) PURE;
  481.     STDMETHOD(GetPredefinedValue)(THIS_ DISPID,DWORD,VARIANT*) PURE;
  482. };
  483.  
  484. EXTERN_C const IID IID_IPropertyPageSite;
  485. #undef INTERFACE
  486. #define INTERFACE IPropertyPageSite
  487. DECLARE_INTERFACE_(IPropertyPageSite,IUnknown)
  488. {
  489.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  490.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  491.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  492.     STDMETHOD(OnStatusChange)(THIS_ DWORD) PURE;
  493.     STDMETHOD(GetLocaleID)(THIS_ LCID*) PURE;
  494.     STDMETHOD(GetPageContainer)(THIS_ LPUNKNOWN*) PURE;
  495.     STDMETHOD(TranslateAccelerator)(THIS_ LPMSG) PURE;
  496. };
  497.  
  498. EXTERN_C const IID IID_IPropertyPage;
  499. #undef INTERFACE
  500. #define INTERFACE IPropertyPage
  501. DECLARE_INTERFACE_(IPropertyPage,IUnknown)
  502. {
  503.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  504.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  505.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  506.     STDMETHOD(SetPageSite)(THIS_ LPPROPERTYPAGESITE) PURE;
  507.     STDMETHOD(Activate)(THIS_ HWND,LPCRECT,BOOL) PURE;
  508.     STDMETHOD(Deactivate)(THIS) PURE;
  509.     STDMETHOD(GetPageInfo)(THIS_ LPPROPPAGEINFO) PURE;
  510.     STDMETHOD(SetObjects)(THIS_ ULONG,LPUNKNOWN*) PURE;
  511.     STDMETHOD(Show)(THIS_ UINT) PURE;
  512.     STDMETHOD(Move)(THIS_ LPCRECT) PURE;
  513.     STDMETHOD(IsPageDirty)(THIS) PURE;
  514.     STDMETHOD(Apply)(THIS) PURE;
  515.     STDMETHOD(Help)(THIS_ LPCOLESTR) PURE;
  516.     STDMETHOD(TranslateAccelerator)(THIS_ LPMSG) PURE;
  517. };
  518.  
  519. EXTERN_C const IID IID_IPropertyPage2;
  520. #undef INTERFACE
  521. #define INTERFACE IPropertyPage2
  522. DECLARE_INTERFACE_(IPropertyPage2,IPropertyPage)
  523. {
  524.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  525.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  526.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  527.     STDMETHOD(SetPageSite)(THIS_ LPPROPERTYPAGESITE) PURE;
  528.     STDMETHOD(Activate)(THIS_ HWND,LPCRECT,BOOL) PURE;
  529.     STDMETHOD(Deactivate)(THIS) PURE;
  530.     STDMETHOD(GetPageInfo)(THIS_ LPPROPPAGEINFO) PURE;
  531.     STDMETHOD(SetObjects)(THIS_ ULONG,LPUNKNOWN*) PURE;
  532.     STDMETHOD(Show)(THIS_ UINT) PURE;
  533.     STDMETHOD(Move)(THIS_ LPCRECT) PURE;
  534.     STDMETHOD(IsPageDirty)(THIS) PURE;
  535.     STDMETHOD(Apply)(THIS) PURE;
  536.     STDMETHOD(Help)(THIS_ LPCOLESTR) PURE;
  537.     STDMETHOD(TranslateAccelerator)(THIS_ LPMSG) PURE;
  538.     STDMETHOD(EditProperty)(THIS_ DISPID) PURE;
  539. };
  540.  
  541. EXTERN_C const IID IID_IFont;
  542. #undef INTERFACE
  543. #define INTERFACE IFont
  544. DECLARE_INTERFACE_(IFont,IUnknown)
  545. {
  546.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  547.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  548.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  549.     STDMETHOD(get_Name)(THIS_ BSTR*) PURE;
  550.     STDMETHOD(put_Name)(THIS_ BSTR) PURE;
  551.     STDMETHOD(get_Size)(THIS_ CY*) PURE;
  552.     STDMETHOD(put_Size)(THIS_ CY) PURE;
  553.     STDMETHOD(get_Bold)(THIS_ BOOL*) PURE;
  554.     STDMETHOD(put_Bold)(THIS_ BOOL) PURE;
  555.     STDMETHOD(get_Italic)(THIS_ BOOL*) PURE;
  556.     STDMETHOD(put_Italic)(THIS_ BOOL) PURE;
  557.     STDMETHOD(get_Underline)(THIS_ BOOL*) PURE;
  558.     STDMETHOD(put_Underline)(THIS_ BOOL) PURE;
  559.     STDMETHOD(get_Strikethrough)(THIS_ BOOL*) PURE;
  560.     STDMETHOD(put_Strikethrough)(THIS_ BOOL) PURE;
  561.     STDMETHOD(get_Weight)(THIS_ short*) PURE;
  562.     STDMETHOD(put_Weight)(THIS_ short) PURE;
  563.     STDMETHOD(get_Charset)(THIS_ short*) PURE;
  564.     STDMETHOD(put_Charset)(THIS_ short) PURE;
  565.     STDMETHOD(get_hFont)(THIS_ HFONT*) PURE;
  566.     STDMETHOD(Clone)(THIS_ IFont**) PURE;
  567.     STDMETHOD(IsEqual)(THIS_ IFont*) PURE;
  568.     STDMETHOD(SetRatio)(THIS_ long,long) PURE;
  569.     STDMETHOD(QueryTextMetrics)(THIS_ LPTEXTMETRICOLE) PURE;
  570.     STDMETHOD(AddRefHfont)(THIS_ HFONT) PURE;
  571.     STDMETHOD(ReleaseHfont)(THIS_ HFONT) PURE;
  572.     STDMETHOD(SetHdc)(THIS_ HDC) PURE;
  573. };
  574.  
  575. EXTERN_C const IID IID_IFontDisp;
  576. #undef INTERFACE
  577. #define INTERFACE IFontDisp
  578. DECLARE_INTERFACE_(IFontDisp,IDispatch)
  579. {
  580.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  581.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  582.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  583.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT*) PURE;
  584.     STDMETHOD(GetTypeInfo)(THIS_ UINT,LCID,LPTYPEINFO*) PURE;
  585.     STDMETHOD(GetIDsOfNames)(THIS_ REFIID,LPOLESTR*,UINT,LCID,DISPID*) PURE;
  586.     STDMETHOD(Invoke)(THIS_ DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;
  587. };
  588.  
  589. EXTERN_C const IID IID_IPicture;
  590. #undef INTERFACE
  591. #define INTERFACE IPicture
  592. DECLARE_INTERFACE_(IPicture,IUnknown)
  593. {
  594.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  595.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  596.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  597.     STDMETHOD(get_Handle)(THIS_ OLE_HANDLE*) PURE;
  598.     STDMETHOD(get_hPal)(THIS_ OLE_HANDLE*) PURE;
  599.     STDMETHOD(get_Type)(THIS_ short*) PURE;
  600.     STDMETHOD(get_Width)(THIS_ OLE_XSIZE_HIMETRIC*) PURE;
  601.     STDMETHOD(get_Height)(THIS_ OLE_YSIZE_HIMETRIC*) PURE;
  602.     STDMETHOD(Render)(THIS_ HDC,long,long,long,long,OLE_XPOS_HIMETRIC,OLE_YPOS_HIMETRIC,OLE_XSIZE_HIMETRIC,OLE_YSIZE_HIMETRIC,LPCRECT) PURE;
  603.     STDMETHOD(set_hPal)(THIS_ OLE_HANDLE) PURE;
  604.     STDMETHOD(get_CurDC)(THIS_ HDC*) PURE;
  605.     STDMETHOD(SelectPicture)(THIS_ HDC,HDC*,OLE_HANDLE*) PURE;
  606.     STDMETHOD(get_KeepOriginalFormat)(THIS_ BOOL*) PURE;
  607.     STDMETHOD(put_KeepOriginalFormat)(THIS_ BOOL) PURE;
  608.     STDMETHOD(PictureChanged)(THIS) PURE;
  609.     STDMETHOD(SaveAsFile)(THIS_ LPSTREAM,BOOL,LONG*) PURE;
  610.     STDMETHOD(get_Attributes)(THIS_ PDWORD) PURE;
  611. };
  612.  
  613. #ifdef COBJMACROS
  614. #define IPicture_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
  615. #define IPicture_AddRef(p) (p)->lpVtbl->AddRef(p)
  616. #define IPicture_Release(p) (p)->lpVtbl->Release(p)
  617. #define IPicture_get_Handle(p,a) (p)->lpVtbl->get_Handle(p,a)
  618. #define IPicture_get_hPal(p,a) (p)->lpVtbl->get_hPal(p,a)
  619. #define IPicture_get_Type(p,a) (p)->lpVtbl->get_Type(p,a)
  620. #define IPicture_get_Width(p,a) (p)->lpVtbl->get_Width(p,a)
  621. #define IPicture_get_Height(p,a) (p)->lpVtbl->get_Height(p,a)
  622. #define IPicture_Render(p,a,b,c,d,e,f,g,h,i,j) (p)->lpVtbl->Render(p,a,b,c,d,e,f,g,h,i,j)
  623. #define IPicture_set_hPal(p,a) (p)->lpVtbl->set_hPal(p,a)
  624. #define IPicture_get_CurDC(p,a) (p)->lpVtbl->get_CurDC(p,a)
  625. #define IPicture_SelectPicture(p,a,b,c) (p)->lpVtbl->SelectPicture(p,a,b,c)
  626. #define IPicture_get_KeepOriginalFormat(p,a) (p)->lpVtbl->get_KeepOriginalFormat(p,a)
  627. #define IPicture_put_KeepOriginalFormat(p,a) (p)->lpVtbl->put_KeepOriginalFormat(p,a)
  628. #define IPicture_PictureChanged(p) (p)->lpVtbl->PictureChanged(p)
  629. #define IPicture_SaveAsFile(p,a,b,c) (p)->lpVtbl->SaveAsFile(p,a,b,c)
  630. #define IPicture_get_Attributes(p,a) (p)->lpVtbl->get_Attributes(p,a)
  631. #endif
  632.  
  633. EXTERN_C const IID IID_IPictureDisp;
  634. #undef INTERFACE
  635. #define INTERFACE IPictureDisp
  636. DECLARE_INTERFACE_(IPictureDisp,IDispatch)
  637. {
  638.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  639.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  640.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  641.     STDMETHOD(GetTypeInfoCount)(THIS_ UINT*) PURE;
  642.     STDMETHOD(GetTypeInfo)(THIS_ UINT,LCID,LPTYPEINFO*) PURE;
  643.     STDMETHOD(GetIDsOfNames)(THIS_ REFIID,LPOLESTR*,UINT,LCID,DISPID*) PURE;
  644.     STDMETHOD(Invoke)(THIS_ DISPID,REFIID,LCID,WORD,DISPPARAMS*,VARIANT*,EXCEPINFO*,UINT*) PURE;
  645. };
  646.  
  647. EXTERN_C const IID IID_IOleInPlaceSiteEx;
  648. #undef INTERFACE
  649. #define INTERFACE IOleInPlaceSiteEx
  650. DECLARE_INTERFACE_(IOleInPlaceSiteEx,IOleInPlaceSite)
  651. {
  652.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  653.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  654.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  655.     STDMETHOD(GetWindow)(THIS_ HWND*) PURE;
  656.     STDMETHOD(ContextSensitiveHelp)(THIS_ BOOL) PURE;
  657.     STDMETHOD(CanInPlaceActivate)(THIS) PURE;
  658.     STDMETHOD(OnInPlaceActivate)(THIS) PURE;
  659.     STDMETHOD(OnUIActivate)(THIS) PURE;
  660.     STDMETHOD(GetWindowContext)(THIS_ IOleInPlaceFrame**,IOleInPlaceUIWindow**,LPRECT,LPRECT,LPOLEINPLACEFRAMEINFO) PURE;
  661.     STDMETHOD(Scroll)(THIS_ SIZE) PURE;
  662.     STDMETHOD(OnUIDeactivate)(THIS_ BOOL) PURE;
  663.     STDMETHOD(OnInPlaceDeactivate)(THIS) PURE;
  664.     STDMETHOD(DiscardUndoState)(THIS) PURE;
  665.     STDMETHOD(DeactivateAndUndo)(THIS) PURE;
  666.     STDMETHOD(OnPosRectChange)(THIS_ LPCRECT) PURE;
  667.     STDMETHOD(OnInPlaceActivateEx)(THIS_ BOOL*,DWORD) PURE;
  668.     STDMETHOD(OnInPlaceDeactivateEx)(THIS_ BOOL) PURE;
  669.     STDMETHOD(RequestUIActivate)(THIS) PURE;
  670. };
  671.  
  672. EXTERN_C const IID IID_IObjectWithSite;
  673. #undef INTERFACE
  674. #define INTERFACE IObjectWithSite
  675. DECLARE_INTERFACE_(IObjectWithSite,IUnknown)
  676. {
  677.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  678.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  679.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  680.     STDMETHOD(SetSite)(THIS_ IUnknown*) PURE;
  681.     STDMETHOD(GetSite)(THIS_ REFIID, void**) PURE;
  682. };
  683.  
  684. EXTERN_C const IID IID_IOleInPlaceSiteWindowless;
  685. #undef INTERFACE
  686. #define INTERFACE IOleInPlaceSiteWindowless
  687. DECLARE_INTERFACE_(IOleInPlaceSiteWindowless,IOleInPlaceSiteEx)
  688. {
  689.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  690.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  691.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  692.     STDMETHOD(GetWindow)(THIS_ HWND*) PURE;
  693.     STDMETHOD(ContextSensitiveHelp)(THIS_ BOOL) PURE;
  694.     STDMETHOD(CanInPlaceActivate)(THIS) PURE;
  695.     STDMETHOD(OnInPlaceActivate)(THIS) PURE;
  696.     STDMETHOD(OnUIActivate)(THIS) PURE;
  697.     STDMETHOD(GetWindowContext)(THIS_ IOleInPlaceFrame**,IOleInPlaceUIWindow**,LPRECT,LPRECT,LPOLEINPLACEFRAMEINFO) PURE;
  698.     STDMETHOD(Scroll)(THIS_ SIZE) PURE;
  699.     STDMETHOD(OnUIDeactivate)(THIS_ BOOL) PURE;
  700.     STDMETHOD(OnInPlaceDeactivate)(THIS) PURE;
  701.     STDMETHOD(DiscardUndoState)(THIS) PURE;
  702.     STDMETHOD(DeactivateAndUndo)(THIS) PURE;
  703.     STDMETHOD(OnPosRectChange)(THIS_ LPCRECT) PURE;
  704.  
  705.     STDMETHOD(OnInPlaceActivateEx)(THIS_ BOOL*,DWORD) PURE;
  706.     STDMETHOD(OnInPlaceDeactivateEx)(THIS_ BOOL) PURE;
  707.     STDMETHOD(RequestUIActivate)(THIS) PURE;
  708.  
  709.     STDMETHOD(CanWindowlessActivate)(THIS) PURE;
  710.     STDMETHOD(GetCapture)(THIS) PURE;
  711.     STDMETHOD(SetCapture)(THIS_ BOOL) PURE;
  712.     STDMETHOD(GetFocus)(THIS) PURE;
  713.     STDMETHOD(SetFocus)(THIS_ BOOL) PURE;
  714.     STDMETHOD(GetDC)(THIS_ LPCRECT,DWORD,HDC*) PURE;
  715.     STDMETHOD(ReleaseDC)(THIS_ HDC) PURE;
  716.     STDMETHOD(InvalidateRect)(THIS_ LPCRECT,BOOL) PURE;
  717.     STDMETHOD(InvalidateRgn)(THIS_ HRGN,BOOL) PURE;
  718.     STDMETHOD(ScrollRect)(THIS_ INT,INT,LPCRECT,LPCRECT) PURE;
  719.     STDMETHOD(AdjustRect)(THIS_ LPCRECT) PURE;
  720.     STDMETHOD(OnDefWindowMessage)(THIS_ UINT,WPARAM,LPARAM,LRESULT*) PURE;
  721. };
  722.  
  723. EXTERN_C const IID IID_IAdviseSinkEx;
  724. #undef INTERFACE
  725. #define INTERFACE IAdviseSinkEx
  726. DECLARE_INTERFACE_(IAdviseSinkEx,IUnknown)
  727. {
  728.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  729.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  730.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  731.     STDMETHOD_(void,OnDataChange)(THIS_ FORMATETC*,STGMEDIUM*) PURE;
  732.     STDMETHOD_(void,OnViewChange)(THIS_ DWORD,LONG) PURE;
  733.     STDMETHOD_(void,OnRename)(THIS_ IMoniker*) PURE;
  734.     STDMETHOD_(void,OnSave)(THIS) PURE;
  735.     STDMETHOD_(void,OnClose)(THIS) PURE;
  736.     STDMETHOD(OnViewStatusChange)(THIS_ DWORD) PURE;
  737. };
  738.  
  739. EXTERN_C const IID IID_IPointerInactive;
  740. #undef INTERFACE
  741. #define INTERFACE IPointerInactive
  742. DECLARE_INTERFACE_(IPointerInactive,IUnknown)
  743. {
  744.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  745.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  746.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  747.     STDMETHOD(GetActivationPolicy)(THIS_ DWORD*) PURE;
  748.     STDMETHOD(OnInactiveMouseMove)(THIS_ LPCRECT,LONG,LONG,DWORD) PURE;
  749.     STDMETHOD(OnInactiveSetCursor)(THIS_ LPCRECT,LONG,LONG,DWORD,BOOL) PURE;
  750. };
  751.  
  752. EXTERN_C const IID IID_IOleUndoUnit;
  753. #undef INTERFACE
  754. #define INTERFACE IOleUndoUnit
  755. DECLARE_INTERFACE_(IOleUndoUnit,IUnknown)
  756. {
  757.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  758.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  759.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  760.     STDMETHOD(Do)(THIS_ LPOLEUNDOMANAGER) PURE;
  761.     STDMETHOD(GetDescription)(THIS_ BSTR*) PURE;
  762.     STDMETHOD(GetUnitType)(THIS_ CLSID*,LONG*) PURE;
  763.     STDMETHOD(OnNextAdd)(THIS) PURE;
  764. };
  765.  
  766. EXTERN_C const IID IID_IOleParentUndoUnit;
  767. #undef INTERFACE
  768. #define INTERFACE IOleParentUndoUnit
  769. DECLARE_INTERFACE_(IOleParentUndoUnit,IOleUndoUnit)
  770. {
  771.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  772.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  773.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  774.     STDMETHOD(Do)(THIS_ LPOLEUNDOMANAGER) PURE;
  775.     STDMETHOD(GetDescription)(THIS_ BSTR*) PURE;
  776.     STDMETHOD(GetUnitType)(THIS_ CLSID*,LONG*) PURE;
  777.     STDMETHOD(OnNextAdd)(THIS) PURE;
  778.     STDMETHOD(Open)(THIS_ IOleParentUndoUnit*) PURE;
  779.     STDMETHOD(Close)(THIS_ IOleParentUndoUnit*,BOOL) PURE;
  780.     STDMETHOD(Add)(THIS_ IOleUndoUnit*) PURE;
  781.     STDMETHOD(FindUnit)(THIS_ IOleUndoUnit*) PURE;
  782.     STDMETHOD(GetParentState)(THIS_ DWORD*) PURE;
  783. };
  784.  
  785. EXTERN_C const IID IID_IEnumOleUndoUnits;
  786. #undef INTERFACE
  787. #define INTERFACE IEnumOleUndoUnits
  788. DECLARE_INTERFACE_(IEnumOleUndoUnits,IUnknown)
  789. {
  790.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  791.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  792.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  793.     STDMETHOD(Next)(THIS_ ULONG,IOleUndoUnit**,ULONG*) PURE;        
  794.     STDMETHOD(Skip)(THIS_ ULONG) PURE;
  795.     STDMETHOD(Reset)(THIS) PURE;
  796.     STDMETHOD(Clone)(THIS_ IEnumOleUndoUnits**) PURE;
  797. };
  798.  
  799. EXTERN_C const IID IID_IOleUndoManager;
  800. #undef INTERFACE
  801. #define INTERFACE IOleUndoManager
  802. DECLARE_INTERFACE_(IOleUndoManager,IUnknown)
  803. {
  804.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  805.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  806.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  807.     STDMETHOD(Open)(THIS_ IOleParentUndoUnit*) PURE;
  808.     STDMETHOD(Close)(THIS_ IOleParentUndoUnit*,BOOL) PURE;
  809.     STDMETHOD(Add)(THIS_ IOleUndoUnit*) PURE;
  810.     STDMETHOD(GetOpenParentState)(THIS_ DWORD*) PURE;
  811.     STDMETHOD(DiscardFrom)(THIS_ IOleUndoUnit*) PURE;
  812.     STDMETHOD(UndoTo)(THIS_ IOleUndoUnit*) PURE;
  813.     STDMETHOD(RedoTo)(THIS_ IOleUndoUnit*) PURE;
  814.     STDMETHOD(EnumUndoable)(THIS_ IEnumOleUndoUnits**) PURE;
  815.     STDMETHOD(EnumRedoable)(THIS_ IEnumOleUndoUnits**) PURE;
  816.     STDMETHOD(GetLastUndoDescription)(THIS_ BSTR*) PURE;
  817.     STDMETHOD(GetLastRedoDescription)(THIS_ BSTR*) PURE;
  818.     STDMETHOD(Enable)(THIS_ BOOL) PURE;
  819. };
  820.  
  821. EXTERN_C const IID IID_IQuickActivate;
  822. #undef INTERFACE
  823. #define INTERFACE IQuickActivate
  824. DECLARE_INTERFACE_(IQuickActivate,IUnknown)
  825. {
  826.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  827.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  828.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  829.     STDMETHOD(QuickActivate)(THIS_ QACONTAINER*,QACONTROL*) PURE;
  830.     STDMETHOD(SetContentExtent)(THIS_ LPSIZEL) PURE;
  831.     STDMETHOD(GetContentExtent)(THIS_ LPSIZEL) PURE;
  832. };
  833.  
  834. #ifdef __cplusplus
  835. }
  836. #endif
  837. #endif
  838.