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

  1. #ifndef _OLEIDL_H
  2. #define _OLEIDL_H
  3. #if __GNUC__ >=3
  4. #pragma GCC system_header
  5. #endif
  6.  
  7. #ifdef __cplusplus
  8. extern "C" {
  9. #endif
  10.  
  11. #include <objfwd.h>
  12.  
  13. #define MK_ALT    32
  14.  
  15. typedef interface IParseDisplayName *LPPARSEDISPLAYNAME;
  16. typedef interface IOleContainer *LPOLECONTAINER;
  17. typedef interface IOleClientSite *LPOLECLIENTSITE;
  18. typedef interface IOleObject *LPOLEOBJECT;
  19. typedef interface IDropTarget *LPDROPTARGET;
  20. typedef interface IDropSource *LPDROPSOURCE;
  21. typedef interface IEnumOleUndoUnits *LPENUMOLEUNDOUNITS;
  22. typedef interface IEnumOLEVERB *LPENUMOLEVERB;
  23. typedef interface IOleWindow *LPOLEWINDOW;
  24. typedef interface IOleInPlaceUIWindow *LPOLEINPLACEUIWINDOW;
  25. typedef interface IOleInPlaceActiveObject *LPOLEINPLACEACTIVEOBJECT;
  26. typedef interface IOleInPlaceFrame *LPOLEINPLACEFRAME;
  27. typedef interface IOleAdviseHolder *LPOLEADVISEHOLDER;
  28. typedef interface IViewObject *LPVIEWOBJECT;
  29. typedef interface IViewObject2 *LPVIEWOBJECT2;
  30. typedef interface IOleCache *LPOLECACHE;
  31. typedef interface IOleCache2 *LPOLECACHE2;
  32. typedef interface IOleCacheControl *LPOLECACHECONTROL;
  33.  
  34. typedef enum tagBINDSPEED
  35. {
  36.     BINDSPEED_INDEFINITE=1,
  37.     BINDSPEED_MODERATE,
  38.     BINDSPEED_IMMEDIATE
  39. } BINDSPEED;
  40. typedef enum tagOLEWHICHMK {
  41.     OLEWHICHMK_CONTAINER=1,
  42.     OLEWHICHMK_OBJREL,
  43.     OLEWHICHMK_OBJFULL
  44. } OLEWHICHMK;
  45. typedef enum tagOLEGETMONIKER {
  46.     OLEGETMONIKER_ONLYIFTHERE=1,
  47.     OLEGETMONIKER_FORCEASSIGN,
  48.     OLEGETMONIKER_UNASSIGN,
  49.     OLEGETMONIKER_TEMPFORUSER
  50. } OLEGETMONIKER;
  51. typedef enum tagUSERCLASSTYPE {
  52.     USERCLASSTYPE_FULL=1,
  53.     USERCLASSTYPE_SHORT,
  54.     USERCLASSTYPE_APPNAME
  55. } USERCLASSTYPE;
  56.  
  57. #ifdef __GNUC__
  58. __extension__  /* IS0 C says enums limited to range of int */ 
  59. #endif
  60. typedef enum tagDROPEFFECT {
  61.     DROPEFFECT_NONE=0,
  62.     DROPEFFECT_COPY=1,
  63.     DROPEFFECT_MOVE=2,
  64.     DROPEFFECT_LINK=4,
  65.     DROPEFFECT_SCROLL=0x80000000
  66. } DROPEFFECT;
  67. typedef struct tagOleMenuGroupWidths {
  68.     LONG width[6];
  69. } OLEMENUGROUPWIDTHS,*LPOLEMENUGROUPWIDTHS;
  70. typedef HGLOBAL HOLEMENU;
  71. typedef enum tagOLECLOSE {
  72.     OLECLOSE_SAVEIFDIRTY,
  73.     OLECLOSE_NOSAVE,
  74.     OLECLOSE_PROMPTSAVE
  75. } OLECLOSE;
  76. typedef struct tagOLEVERB {
  77.     LONG lVerb;
  78.     LPWSTR lpszVerbName;
  79.     DWORD fuFlags;
  80.     DWORD grfAttribs;
  81. } OLEVERB,*LPOLEVERB;
  82. typedef RECT BORDERWIDTHS;
  83. typedef LPRECT LPBORDERWIDTHS;
  84. typedef LPCRECT LPCBORDERWIDTHS;
  85. typedef struct tagOIFI {
  86.     UINT cb;
  87.     BOOL fMDIApp;
  88.     HWND hwndFrame;
  89.     HACCEL haccel;
  90.     UINT cAccelEntries;
  91. }OLEINPLACEFRAMEINFO,*LPOLEINPLACEFRAMEINFO;
  92.  
  93. DECLARE_ENUMERATOR(OLEVERB);
  94. typedef IEnumOLEVERB IEnumOleVerb;
  95.  
  96. EXTERN_C const IID IID_IParseDisplayName;
  97. #undef INTERFACE
  98. #define INTERFACE IParseDisplayName
  99. DECLARE_INTERFACE_(IParseDisplayName,IUnknown)
  100. {
  101.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  102.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  103.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  104.     STDMETHOD(ParseDisplayName)(THIS_ IBindCtx*,LPOLESTR,ULONG*,IMoniker**) PURE;
  105. };
  106.  
  107. #ifdef COBJMACROS
  108. #define IParseDisplayName_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
  109. #define IParseDisplayName_AddRef(T) (T)->lpVtbl->AddRef(T)
  110. #define IParseDisplayName_Release(T) (T)->lpVtbl->Release(T)
  111. #define IParseDisplayName_ParseDisplayName(T,a,b,c,d) (T)->lpVtbl->ParseDisplayName(T,a,b,c,d)
  112. #endif
  113.  
  114. EXTERN_C const IID IID_IOleContainer;
  115. #undef INTERFACE
  116. #define INTERFACE IOleContainer
  117. DECLARE_INTERFACE_(IOleContainer,IParseDisplayName)
  118. {
  119.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  120.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  121.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  122.     STDMETHOD(ParseDisplayName)(THIS_ IBindCtx*,LPOLESTR,ULONG*,IMoniker**) PURE;
  123.     STDMETHOD(EnumObjects)(THIS_ DWORD,IEnumUnknown**) PURE;
  124.     STDMETHOD(LockContainer)(THIS_ BOOL) PURE;
  125. };
  126.  
  127. EXTERN_C const IID IID_IOleItemContainer;
  128. #undef INTERFACE
  129. #define INTERFACE IOleItemContainer
  130. DECLARE_INTERFACE_(IOleItemContainer,IOleContainer)
  131. {
  132.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  133.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  134.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  135.     STDMETHOD(ParseDisplayName)(THIS_ IBindCtx*,LPOLESTR,ULONG*,IMoniker**) PURE;
  136.     STDMETHOD(EnumObjects)(THIS_ DWORD,IEnumUnknown**) PURE;
  137.     STDMETHOD(LockContainer)(THIS_ BOOL) PURE;
  138.     STDMETHOD(GetObject)(THIS_ LPOLESTR,DWORD,IBindCtx*,REFIID,void**) PURE;
  139.     STDMETHOD(GetObjectStorage)(THIS_ LPOLESTR,IBindCtx*,REFIID,void**) PURE;
  140.     STDMETHOD(IsRunning)(THIS_ LPOLESTR) PURE;
  141. };
  142.  
  143. #ifdef COBJMACROS
  144. #define IOleItemContainer_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
  145. #define IOleItemContainer_AddRef(T) (T)->lpVtbl->AddRef(T)
  146. #define IOleItemContainer_Release(T) (T)->lpVtbl->Release(T)
  147. #define IOleItemContainer_ParseDisplayName(T,a,b,c,d) (T)->lpVtbl->ParseDisplayName(T,a,b,c,d)
  148. #define IOleItemContainer_EnumObjects(T,a,b) (T)->lpVtbl->EnumObjects(T,a,b)
  149. #define IOleItemContainer_LockContainer(T,a) (T)->lpVtbl->LockContainer(T,a)
  150. #define IOleItemContainer_GetObject(T,a,b,c,d,e) (T)->lpVtbl->GetObject(T,a,b,c,d,e)
  151. #define IOleItemContainer_GetObjectStorage(T,a,b,c,d) (T)->lpVtbl->GetObjectStorage(T,a,b,c,d)
  152. #define IOleItemContainer_IsRunning(T,a) (T)->lpVtbl->IsRunning(T,a)
  153. #endif
  154.  
  155. EXTERN_C const IID IID_IOleClientSite;
  156. #undef INTERFACE
  157. #define INTERFACE IOleClientSite
  158. DECLARE_INTERFACE_(IOleClientSite,IUnknown)
  159. {
  160.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  161.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  162.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  163.     STDMETHOD(SaveObject)(THIS) PURE;
  164.     STDMETHOD(GetMoniker)(THIS_ DWORD,DWORD,LPMONIKER*) PURE;
  165.     STDMETHOD(GetContainer)(THIS_ LPOLECONTAINER*) PURE;
  166.     STDMETHOD(ShowObject)(THIS) PURE;
  167.     STDMETHOD(OnShowWindow)(THIS_ BOOL) PURE;
  168.     STDMETHOD(RequestNewObjectLayout)(THIS) PURE;
  169. };
  170.  
  171. #ifdef COBJMACROS
  172. #define IOleClientSite_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
  173. #define IOleClientSite_AddRef(T) (T)->lpVtbl->AddRef(T)
  174. #define IOleClientSite_Release(T) (T)->lpVtbl->Release(T)
  175. #define IOleClientSite_SaveObject(T) (T)->lpVtbl->SaveObject(T)
  176. #define IOleClientSite_GetMoniker(T,a,b,c) (T)->lpVtbl->GetMoniker(T,a,b,c)
  177. #define IOleClientSite_GetContainer(T,a) (T)->lpVtbl->GetContainer(T,a)
  178. #define IOleClientSite_ShowObject(T) (T)->lpVtbl->ShowObject(T)
  179. #define IOleClientSite_OnShowWindow(T,a) (T)->lpVtbl->OnShowWindow(T,a)
  180. #define IOleClientSite_RequestNewObjectLayout(T) (T)->lpVtbl->RequestNewObjectLayout(T)
  181. #endif
  182.  
  183. EXTERN_C const IID IID_IOleObject;
  184. #undef INTERFACE
  185. #define INTERFACE IOleObject
  186. DECLARE_INTERFACE_(IOleObject,IUnknown)
  187. {
  188.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  189.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  190.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  191.     STDMETHOD(SetClientSite)(THIS_ LPOLECLIENTSITE) PURE;
  192.     STDMETHOD(GetClientSite)(THIS_ LPOLECLIENTSITE*) PURE;
  193.     STDMETHOD(SetHostNames)(THIS_ LPCOLESTR,LPCOLESTR) PURE;
  194.     STDMETHOD(Close)(THIS_ DWORD) PURE;
  195.     STDMETHOD(SetMoniker)(THIS_ DWORD,LPMONIKER) PURE;
  196.     STDMETHOD(GetMoniker)(THIS_ DWORD,DWORD,LPMONIKER*) PURE;
  197.     STDMETHOD(InitFromData)(THIS_ LPDATAOBJECT,BOOL,DWORD) PURE;
  198.     STDMETHOD(GetClipboardData)(THIS_ DWORD,LPDATAOBJECT*) PURE;
  199.     STDMETHOD(DoVerb)(THIS_ LONG,LPMSG,LPOLECLIENTSITE,LONG,HWND,LPCRECT) PURE;
  200.     STDMETHOD(EnumVerbs)(THIS_ LPENUMOLEVERB*) PURE;
  201.     STDMETHOD(Update)(THIS) PURE;
  202.     STDMETHOD(IsUpToDate)(THIS) PURE;
  203.     STDMETHOD(GetUserClassID)(THIS_ LPCLSID) PURE;
  204.     STDMETHOD(GetUserType)(THIS_ DWORD,LPOLESTR*) PURE;
  205.     STDMETHOD(SetExtent)(THIS_ DWORD,SIZEL*) PURE;
  206.     STDMETHOD(GetExtent)(THIS_ DWORD,SIZEL*) PURE;
  207.     STDMETHOD(Advise)(THIS_ LPADVISESINK,PDWORD) PURE;
  208.     STDMETHOD(Unadvise)(THIS_ DWORD) PURE;
  209.     STDMETHOD(EnumAdvise)(THIS_ LPENUMSTATDATA*) PURE;
  210.     STDMETHOD(GetMiscStatus)(THIS_ DWORD,PDWORD) PURE;
  211.     STDMETHOD(SetColorScheme)(THIS_ LPLOGPALETTE) PURE;
  212. };
  213.  
  214. #ifdef COBJMACROS
  215. #define IOleObject_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
  216. #define IOleObject_AddRef(T) (T)->lpVtbl->AddRef(T)
  217. #define IOleObject_Release(T) (T)->lpVtbl->Release(T)
  218. #define IOleObject_SetClientSite(T,a) (T)->lpVtbl->SetClientSite(T,a)
  219. #define IOleObject_GetClientSite(T,a) (T)->lpVtbl->GetClientSite(T,a)
  220. #define IOleObject_SetHostNames(T,a,b) (T)->lpVtbl->SetHostNames(T,a,b)
  221. #define IOleObject_Close(T,a) (T)->lpVtbl->Close(T,a)
  222. #define IOleObject_SetMoniker(T,a,b) (T)->lpVtbl->SetMoniker(T,a,b)
  223. #define IOleObject_GetMoniker(T,a,b,c) (T)->lpVtbl->GetMoniker(T,a,b,c)
  224. #define IOleObject_InitFromData(T,a,b,c) (T)->lpVtbl->InitFromData(T,a,b,c)
  225. #define IOleObject_GetClipboardData(T,a,b) (T)->lpVtbl->GetClipboardData(T,a,b)
  226. #define IOleObject_DoVerb(T,a,b,c,d,e,f) (T)->lpVtbl->DoVerb(T,a,b,c,d,e,f)
  227. #define IOleObject_EnumVerbs(T,a) (T)->lpVtbl->EnumVerbs(T,a)
  228. #define IOleObject_Update(T) (T)->lpVtbl->Update(T)
  229. #define IOleObject_IsUpToDate(T) (T)->lpVtbl->IsUpToDate(T)
  230. #define IOleObject_GetUserClassID(T,a) (T)->lpVtbl->GetUserClassID(T,a)
  231. #define IOleObject_GetUserType(T,a,b) (T)->lpVtbl->GetUserType(T,a,b)
  232. #define IOleObject_SetExtent(T,a,b) (T)->lpVtbl->SetExtent(T,a,b)
  233. #define IOleObject_GetExtent(T,a,b) (T)->lpVtbl->GetExtent(T,a,b)
  234. #define IOleObject_Advise(T,a,b) (T)->lpVtbl->Advise(T,a,b)
  235. #define IOleObject_Unadvise(T,a) (T)->lpVtbl->Unadvise(T,a)
  236. #define IOleObject_EnumAdvise(T,a) (T)->lpVtbl->EnumAdvise(T,a)
  237. #define IOleObject_GetMiscStatus(T,a,b) (T)->lpVtbl->GetMiscStatus(T,a,b)
  238. #define IOleObject_SetColorScheme(T,a) (T)->lpVtbl->SetColorScheme(T,a)
  239. #endif
  240.  
  241. EXTERN_C const IID IID_IOleWindow;
  242. #undef INTERFACE
  243. #define INTERFACE IOleWindow
  244. DECLARE_INTERFACE_(IOleWindow,IUnknown)
  245. {
  246.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  247.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  248.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  249.     STDMETHOD(GetWindow)(THIS_ HWND*) PURE;
  250.     STDMETHOD(ContextSensitiveHelp)(THIS_ BOOL) PURE;
  251. };
  252.  
  253. #ifdef COBJMACROS
  254. #define IOleWindow_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
  255. #define IOleWindow_AddRef(T) (T)->lpVtbl->AddRef(T)
  256. #define IOleWindow_Release(T) (T)->lpVtbl->Release(T)
  257. #define IOleWindow_GetWindow(T,a) (T)->lpVtbl->GetWindow(T,a)
  258. #define IOleWindow_ContextSensitiveHelp(T,a) (T)->lpVtbl->ContextSensitiveHelp(T,a)
  259. #endif
  260.  
  261. EXTERN_C const IID IID_IOleInPlaceUIWindow;
  262. #undef INTERFACE
  263. #define INTERFACE IOleInPlaceUIWindow
  264. DECLARE_INTERFACE_(IOleInPlaceUIWindow,IOleWindow)
  265. {
  266.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  267.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  268.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  269.     STDMETHOD(GetWindow)(THIS_ HWND*) PURE;
  270.     STDMETHOD(ContextSensitiveHelp)(THIS_ BOOL) PURE;
  271.     STDMETHOD(GetBorder)(THIS_ LPRECT) PURE;
  272.     STDMETHOD(RequestBorderSpace)(THIS_ LPCBORDERWIDTHS) PURE;
  273.     STDMETHOD(SetBorderSpace)(THIS_ LPCBORDERWIDTHS) PURE;
  274.     STDMETHOD(SetActiveObject)(THIS_ LPOLEINPLACEACTIVEOBJECT,LPCOLESTR) PURE;
  275. };
  276.  
  277. EXTERN_C const IID IID_IOleInPlaceObject;
  278. #undef INTERFACE
  279. #define INTERFACE IOleInPlaceObject
  280. DECLARE_INTERFACE_(IOleInPlaceObject,IOleWindow)
  281. {
  282.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  283.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  284.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  285.     STDMETHOD(GetWindow)(THIS_ HWND*) PURE;
  286.     STDMETHOD(ContextSensitiveHelp)(THIS_ BOOL) PURE;
  287.     STDMETHOD(InPlaceDeactivate)(THIS) PURE;
  288.     STDMETHOD(UIDeactivate)(THIS) PURE;
  289.     STDMETHOD(SetObjectRects)(THIS_ LPCRECT,LPCRECT) PURE;
  290.     STDMETHOD(ReactivateAndUndo)(THIS) PURE;
  291. };
  292.  
  293. EXTERN_C const IID IID_IOleInPlaceActiveObject;
  294. #undef INTERFACE
  295. #define INTERFACE IOleInPlaceActiveObject
  296. DECLARE_INTERFACE_(IOleInPlaceActiveObject,IOleWindow)
  297. {
  298.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  299.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  300.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  301.     STDMETHOD(GetWindow)(THIS_ HWND*) PURE;
  302.     STDMETHOD(ContextSensitiveHelp)(THIS_ BOOL) PURE;
  303.     STDMETHOD(TranslateAccelerator)(THIS_ LPMSG) PURE;
  304.     STDMETHOD(OnFrameWindowActivate)(THIS_ BOOL) PURE;
  305.     STDMETHOD(OnDocWindowActivate)(THIS_ BOOL) PURE;
  306.     STDMETHOD(ResizeBorder)(THIS_ LPCRECT,LPOLEINPLACEUIWINDOW,BOOL) PURE;
  307.     STDMETHOD(EnableModeless)(THIS_ BOOL) PURE;
  308. };
  309.  
  310. EXTERN_C const IID IID_IOleInPlaceFrame;
  311. #undef INTERFACE
  312. #define INTERFACE IOleInPlaceFrame
  313. DECLARE_INTERFACE_(IOleInPlaceFrame,IOleInPlaceUIWindow)
  314. {
  315.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  316.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  317.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  318.     STDMETHOD(GetWindow)(THIS_ HWND*) PURE;
  319.     STDMETHOD(ContextSensitiveHelp)(THIS_ BOOL) PURE;
  320.     STDMETHOD(GetBorder)(THIS_ LPRECT) PURE;
  321.     STDMETHOD(RequestBorderSpace)(THIS_ LPCBORDERWIDTHS) PURE;
  322.     STDMETHOD(SetBorderSpace)(THIS_ LPCBORDERWIDTHS) PURE;
  323.     STDMETHOD(SetActiveObject)(THIS_ LPOLEINPLACEACTIVEOBJECT,LPCOLESTR) PURE;
  324.     STDMETHOD(InsertMenus)(THIS_ HMENU,LPOLEMENUGROUPWIDTHS) PURE;
  325.     STDMETHOD(SetMenu)(THIS_ HMENU,HOLEMENU,HWND) PURE;
  326.     STDMETHOD(RemoveMenus)(THIS_ HMENU) PURE;
  327.     STDMETHOD(SetStatusText)(THIS_ LPCOLESTR) PURE;
  328.     STDMETHOD(EnableModeless)(THIS_ BOOL) PURE;
  329.     STDMETHOD(TranslateAccelerator)(THIS_ LPMSG,WORD) PURE;
  330. };
  331.  
  332. #ifdef COBJMACROS
  333. #define IOleInPlaceFrame_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
  334. #define IOleInPlaceFrame_AddRef(T) (T)->lpVtbl->AddRef(T)
  335. #define IOleInPlaceFrame_Release(T) (T)->lpVtbl->Release(T)
  336. #define IOleInPlaceFrame_GetWindow(T,a) (T)->lpVtbl->GetWindow(T,a)
  337. #define IOleInPlaceFrame_ContextSensitiveHelp(T,a) (T)->lpVtbl->ContextSensitiveHelp(T,a)
  338. #define IOleInPlaceFrame_GetBorder(T,a) (T)->lpVtbl->GetBorder(T,a)
  339. #define IOleInPlaceFrame_RequestBorderSpace(T,a) (T)->lpVtbl->RequestBorderSpace(T,a)
  340. #define IOleInPlaceFrame_SetBorderSpace(T,a) (T)->lpVtbl->SetBorderSpace(T,a)
  341. #define IOleInPlaceFrame_SetActiveObject(T,a,b) (T)->lpVtbl->SetActiveObject(T,a,b)
  342. #define IOleInPlaceFrame_InsertMenus(T,a,b) (T)->lpVtbl->InsertMenus(T,a,b)
  343. #define IOleInPlaceFrame_SetMenu(T,a,b,c) (T)->lpVtbl->SetMenu(T,a,b,c)
  344. #define IOleInPlaceFrame_RemoveMenus(T,a) (T)->lpVtbl->RemoveMenus(T,a)
  345. #define IOleInPlaceFrame_SetStatusText(T,a) (T)->lpVtbl->SetStatusText(T,a)
  346. #define IOleInPlaceFrame_EnableModeless(T,a) (T)->lpVtbl->EnableModeless(T,a)
  347. #define IOleInPlaceFrame_TranslateAccelerator(T,a,b) (T)->lpVtbl->TranslateAccelerator(T,a,b)
  348. #endif
  349.  
  350. EXTERN_C const IID IID_IOleInPlaceSite;
  351. #undef INTERFACE
  352. #define INTERFACE IOleInPlaceSite
  353. DECLARE_INTERFACE_(IOleInPlaceSite,IOleWindow)
  354. {
  355.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  356.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  357.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  358.     STDMETHOD(GetWindow)(THIS_ HWND*) PURE;
  359.     STDMETHOD(ContextSensitiveHelp)(THIS_ BOOL) PURE;
  360.     STDMETHOD(CanInPlaceActivate)(THIS) PURE;
  361.     STDMETHOD(OnInPlaceActivate)(THIS) PURE;
  362.     STDMETHOD(OnUIActivate)(THIS) PURE;
  363.     STDMETHOD(GetWindowContext)(THIS_ IOleInPlaceFrame**,IOleInPlaceUIWindow**,LPRECT,LPRECT,LPOLEINPLACEFRAMEINFO) PURE;
  364.     STDMETHOD(Scroll)(THIS_ SIZE) PURE;
  365.     STDMETHOD(OnUIDeactivate)(THIS_ BOOL) PURE;
  366.     STDMETHOD(OnInPlaceDeactivate)(THIS) PURE;
  367.     STDMETHOD(DiscardUndoState)(THIS) PURE;
  368.     STDMETHOD(DeactivateAndUndo)(THIS) PURE;
  369.     STDMETHOD(OnPosRectChange)(THIS_ LPCRECT) PURE;
  370. };
  371.  
  372. EXTERN_C const IID IID_IOleAdviseHolder;
  373. #undef INTERFACE
  374. #define INTERFACE IOleAdviseHolder
  375. DECLARE_INTERFACE_(IOleAdviseHolder,IUnknown)
  376. {
  377.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  378.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  379.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  380.     STDMETHOD(Advise)(THIS_ LPADVISESINK,PDWORD) PURE;
  381.     STDMETHOD(Unadvise)(THIS_ DWORD) PURE;
  382.     STDMETHOD(EnumAdvise)(THIS_ LPENUMSTATDATA*) PURE;
  383.     STDMETHOD(SendOnRename)(THIS_ LPMONIKER) PURE;
  384.     STDMETHOD(SendOnSave)(THIS) PURE;
  385.     STDMETHOD(SendOnClose)(THIS) PURE;
  386. };
  387.  
  388. #ifdef COBJMACROS
  389. #define IOleAdviseHolder_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
  390. #define IOleAdviseHolder_AddRef(T) (T)->lpVtbl->AddRef(T)
  391. #define IOleAdviseHolder_Release(T) (T)->lpVtbl->Release(T)
  392. #define IOleAdviseHolder_Advise(T,a,b) (T)->lpVtbl->Advise(T,a,b)
  393. #define IOleAdviseHolder_Unadvise(T,a) (T)->lpVtbl->Unadvise(T,a)
  394. #define IOleAdviseHolder_EnumAdvise(T,a) (T)->lpVtbl->EnumAdvise(T,a)
  395. #define IOleAdviseHolder_SendOnRename(T,a) (T)->lpVtbl->SendOnRename(T,a)
  396. #define IOleAdviseHolder_SendOnSave(T) (T)->lpVtbl->SendOnSave(T)
  397. #define IOleAdviseHolder_SendOnClose(T) (T)->lpVtbl->SendOnClose(T)
  398. #endif
  399.  
  400. EXTERN_C const IID IID_IDropSource;
  401. #undef INTERFACE
  402. #define INTERFACE IDropSource
  403. DECLARE_INTERFACE_(IDropSource,IUnknown)
  404. {
  405.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  406.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  407.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  408.     STDMETHOD(QueryContinueDrag)(THIS_ BOOL,DWORD) PURE;
  409.     STDMETHOD(GiveFeedback)(THIS_ DWORD) PURE;
  410. };
  411.  
  412. #ifdef COBJMACROS
  413. #define IDropSource_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
  414. #define IDropSource_AddRef(T) (T)->lpVtbl->AddRef(T)
  415. #define IDropSource_Release(T) (T)->lpVtbl->Release(T)
  416. #define IDropSource_QueryContinueDrag(T,a,b) (T)->lpVtbl->QueryContinueDrag(T,a,b)
  417. #define IDropSource_GiveFeedback(T,a) (T)->lpVtbl->GiveFeedback(T,a)
  418. #endif
  419.  
  420. EXTERN_C const IID IID_IDropTarget;
  421. #undef INTERFACE
  422. #define INTERFACE IDropTarget
  423. DECLARE_INTERFACE_(IDropTarget,IUnknown)
  424. {
  425.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  426.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  427.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  428.     STDMETHOD(DragEnter)(THIS_ LPDATAOBJECT,DWORD,POINTL,PDWORD) PURE;
  429.     STDMETHOD(DragOver)(THIS_ DWORD,POINTL,PDWORD) PURE;
  430.     STDMETHOD(DragLeave)(THIS) PURE;
  431.     STDMETHOD(Drop)(THIS_ LPDATAOBJECT,DWORD,POINTL,PDWORD) PURE;
  432. };
  433.  
  434. #ifdef COBJMACROS
  435. #define IDropTarget_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
  436. #define IDropTarget_AddRef(T) (T)->lpVtbl->AddRef(T)
  437. #define IDropTarget_Release(T) (T)->lpVtbl->Release(T)
  438. #define IDropTarget_DragEnter(T,a,b,c,d) (T)->lpVtbl->DragEnter(T,a,b,c,d)
  439. #define IDropTarget_DragOver(T,a,b,c) (T)->lpVtbl->DragOver(T,a,b,c)
  440. #define IDropTarget_DragLeave(T) (T)->lpVtbl->DragLeave(T)
  441. #define IDropTarget_Drop(T,a,b,c,d) (T)->lpVtbl->Drop(T,a,b,c,d)
  442. #endif
  443.  
  444. typedef BOOL(CALLBACK *__IView_pfncont)(DWORD);
  445. EXTERN_C const IID IID_IViewObject;
  446. #undef INTERFACE
  447. #define INTERFACE IViewObject
  448. DECLARE_INTERFACE_(IViewObject,IUnknown)
  449. {
  450.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  451.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  452.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  453.     STDMETHOD(Draw)(THIS_ DWORD,LONG,PVOID,DVTARGETDEVICE*,HDC,HDC,LPCRECTL,LPCRECTL,__IView_pfncont pfnContinue,DWORD) PURE;
  454.     STDMETHOD(GetColorSet)(THIS_ DWORD,LONG,PVOID,DVTARGETDEVICE*,HDC,LPLOGPALETTE*) PURE;
  455.     STDMETHOD(Freeze)(THIS_ DWORD,LONG,PVOID,PDWORD) PURE;
  456.     STDMETHOD(Unfreeze)(THIS_ DWORD) PURE;
  457.     STDMETHOD(SetAdvise)(THIS_ DWORD,DWORD,IAdviseSink*) PURE;
  458.     STDMETHOD(GetAdvise)(THIS_ PDWORD,PDWORD,IAdviseSink**) PURE;
  459. };
  460.  
  461. #ifdef COBJMACROS
  462. #define IViewObject_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
  463. #define IViewObject_AddRef(T) (T)->lpVtbl->AddRef(T)
  464. #define IViewObject_Release(T) (T)->lpVtbl->Release(T)
  465. #define IViewObject_Draw(T,a,b,c,d,e,f,g,h,i,j) (T)->lpVtbl->Draw(T,a,b,c,d,e,f,g,h,i,j)
  466. #define IViewObject_GetColorSet(T,a,b,c,d,e,f) (T)->lpVtbl->GetColorSet(T,a,b,c,d,e,f)
  467. #define IViewObject_Freeze(T,a,b,c,d) (T)->lpVtbl->Freeze(T,a,b,c,d)
  468. #define IViewObject_Unfreeze(T,a) (T)->lpVtbl->Unfreeze(T,a)
  469. #define IViewObject_SetAdvise(T,a,b,c) (T)->lpVtbl->SetAdvise(T,a,b,c)
  470. #define IViewObject_GetAdvise(T,a,b,c) (T)->lpVtbl->GetAdvise(T,a,b,c)
  471. #endif
  472.  
  473. EXTERN_C const IID IID_IViewObject2;
  474. #undef INTERFACE
  475. #define INTERFACE IViewObject2
  476. DECLARE_INTERFACE_(IViewObject2,IViewObject)
  477. {
  478.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  479.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  480.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  481.     STDMETHOD(Draw)(THIS_ DWORD,LONG,PVOID,DVTARGETDEVICE*,HDC,HDC,LPCRECTL,LPCRECTL,__IView_pfncont pfnContinue,DWORD) PURE;
  482.     STDMETHOD(GetColorSet)(THIS_ DWORD,LONG,PVOID,DVTARGETDEVICE*,HDC,LPLOGPALETTE*) PURE;
  483.     STDMETHOD(Freeze)(THIS_ DWORD,LONG,PVOID,PDWORD) PURE;
  484.     STDMETHOD(Unfreeze)(THIS_ DWORD) PURE;
  485.     STDMETHOD(SetAdvise)(THIS_ DWORD,DWORD,IAdviseSink*) PURE;
  486.     STDMETHOD(GetAdvise)(THIS_ PDWORD,PDWORD,IAdviseSink**) PURE;
  487.     STDMETHOD(GetExtent)(THIS_ DWORD,LONG,DVTARGETDEVICE*,LPSIZEL) PURE;
  488. };
  489.  
  490. #ifdef COBJMACROS
  491. #define IViewObject2_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
  492. #define IViewObject2_AddRef(T) (T)->lpVtbl->AddRef(T)
  493. #define IViewObject2_Release(T) (T)->lpVtbl->Release(T)
  494. #define IViewObject2_Draw(T,a,b,c,d,e,f,g,h,i,j) (T)->lpVtbl->Draw(T,a,b,c,d,e,f,g,h,i,j)
  495. #define IViewObject2_GetColorSet(T,a,b,c,d,e,f) (T)->lpVtbl->GetColorSet(T,a,b,c,d,e,f)
  496. #define IViewObject2_Freeze(T,a,b,c,d) (T)->lpVtbl->Freeze(T,a,b,c,d)
  497. #define IViewObject2_Unfreeze(T,a) (T)->lpVtbl->Unfreeze(T,a)
  498. #define IViewObject2_SetAdvise(T,a,b,c) (T)->lpVtbl->SetAdvise(T,a,b,c)
  499. #define IViewObject2_GetAdvise(T,a,b,c) (T)->lpVtbl->GetAdvise(T,a,b,c)
  500. #define IViewObject2_GetExtent(T,a,b,c,d) (T)->lpVtbl->GetExtent(T,a,b,c,d)
  501. #endif
  502.  
  503. EXTERN_C const IID IID_IOleCache;
  504. #undef INTERFACE
  505. #define INTERFACE IOleCache
  506. DECLARE_INTERFACE_(IOleCache,IUnknown)
  507. {
  508.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  509.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  510.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  511.     STDMETHOD(Cache)(THIS_ FORMATETC*,DWORD,DWORD*) PURE;
  512.     STDMETHOD(Uncache)(THIS_ DWORD) PURE; 
  513.     STDMETHOD(EnumCache)(THIS_ IEnumSTATDATA**); 
  514.     STDMETHOD(InitCache)(THIS_ LPDATAOBJECT); 
  515.     STDMETHOD(SetData)(THIS_ FORMATETC*,STGMEDIUM*,BOOL); 
  516. };
  517.  
  518. #ifdef COBJMACROS
  519. #define IOleCache_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
  520. #define IOleCache_AddRef(T) (T)->lpVtbl->AddRef(T)
  521. #define IOleCache_Release(T) (T)->lpVtbl->Release(T)
  522. #define IOleCache_Cache(T,a,b,c) (T)->lpVtbl->Cache(T,a,b,c)
  523. #define IOleCache_Uncache(T,a) (T)->lpVtbl->Uncache(T,a)
  524. #define IOleCache_EnumCache(T,a) (T)->lpVtbl->EnumCache(T,a)
  525. #define IOleCache_InitCache(T,a) (T)->lpVtbl->InitCache(T,a)
  526. #define IOleCache_SetData(T,a,b,c) (T)->lpVtbl->SetData(T,a,b,c)
  527. #endif
  528.  
  529. EXTERN_C const IID IID_IOleCache2;
  530. #undef INTERFACE
  531. #define INTERFACE IOleCache2
  532. DECLARE_INTERFACE_(IOleCache2,IOleCache)
  533. {
  534.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  535.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  536.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  537.     STDMETHOD(Cache)(THIS_ FORMATETC*,DWORD,DWORD*) PURE;
  538.     STDMETHOD(Uncache)(THIS_ DWORD) PURE; 
  539.     STDMETHOD(EnumCache)(THIS_ IEnumSTATDATA**) PURE; 
  540.     STDMETHOD(InitCache)(THIS_ LPDATAOBJECT) PURE; 
  541.     STDMETHOD(SetData)(THIS_ FORMATETC*,STGMEDIUM*,BOOL) PURE; 
  542.     STDMETHOD(UpdateCache)(THIS_ LPDATAOBJECT,DWORD,LPVOID) PURE; 
  543.     STDMETHOD(DiscardCache)(THIS_ DWORD) PURE;
  544. };
  545.  
  546. #ifdef COBJMACROS
  547. #define IOleCache2_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
  548. #define IOleCache2_AddRef(T) (T)->lpVtbl->AddRef(T)
  549. #define IOleCache2_Release(T) (T)->lpVtbl->Release(T)
  550. #define IOleCache2_Cache(T,a,b,c) (T)->lpVtbl->Cache(T,a,b,c)
  551. #define IOleCache2_Uncache(T,a) (T)->lpVtbl->Uncache(T,a)
  552. #define IOleCache2_EnumCache(T,a) (T)->lpVtbl->EnumCache(T,a)
  553. #define IOleCache2_InitCache(T,a) (T)->lpVtbl->InitCache(T,a)
  554. #define IOleCache2_SetData(T,a,b,c) (T)->lpVtbl->SetData(T,a,b,c)
  555. #define IOleCache2_UpdateCache(T,a,b,c) (T)->lpVtbl->UpdateCache(T,a,b,c)
  556. #define IOleCache2_DiscardCache(T,a) (T)->lpVtbl->DiscardCache(T,a)
  557. #endif
  558.  
  559. EXTERN_C const IID IID_IOleCacheControl;
  560. #undef INTERFACE
  561. #define INTERFACE IOleCacheControl
  562. DECLARE_INTERFACE_(IOleCacheControl,IUnknown)
  563. {
  564.     STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
  565.     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
  566.     STDMETHOD_(ULONG,Release)(THIS) PURE;
  567.     STDMETHOD(OnRun)(THIS_ LPDATAOBJECT) PURE;
  568.     STDMETHOD(OnStop)(THIS) PURE;
  569. };
  570.  
  571. #ifdef __cplusplus
  572. }
  573. #endif
  574. #endif
  575.  
  576.