OleIdl.Idl
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:27k
源码类别:

模拟服务器

开发平台:

C/C++

  1. //+-------------------------------------------------------------------------
  2. //
  3. //  Microsoft Windows
  4. //  Copyright (c) Microsoft Corporation. All rights reserved.
  5. //
  6. //  File: oadvhr.idl
  7. //
  8. //--------------------------------------------------------------------------
  9. cpp_quote("//+-------------------------------------------------------------------------")
  10. cpp_quote("//")
  11. cpp_quote("//  Microsoft Windows")
  12. cpp_quote("//  Copyright (c) Microsoft Corporation. All rights reserved.")
  13. cpp_quote("//")
  14. cpp_quote("//--------------------------------------------------------------------------")
  15. cpp_quote("#if ( _MSC_VER >= 1020 )")
  16. cpp_quote("#pragma once")
  17. cpp_quote("#endif")
  18. #ifndef DO_NO_IMPORTS
  19. import "objidl.idl";
  20. #endif
  21. interface IOleInPlaceActiveObject;
  22. interface IEnumOLEVERB;
  23. [
  24.     local,
  25.     object,
  26.     uuid(00000111-0000-0000-C000-000000000046)
  27. ]
  28. interface IOleAdviseHolder : IUnknown
  29. {
  30.     typedef [unique] IOleAdviseHolder * LPOLEADVISEHOLDER;
  31.     HRESULT Advise
  32.     (
  33.         [in, unique] IAdviseSink *pAdvise,
  34.         [out] DWORD *pdwConnection
  35.     );
  36.     HRESULT Unadvise
  37.     (
  38.         [in] DWORD dwConnection
  39.     );
  40.     HRESULT EnumAdvise
  41.     (
  42.         [out] IEnumSTATDATA **ppenumAdvise
  43.     );
  44.     HRESULT SendOnRename
  45.     (
  46.         [in, unique] IMoniker *pmk
  47.     );
  48.     HRESULT SendOnSave
  49.     (
  50.         void
  51.     );
  52.     HRESULT SendOnClose
  53.     (
  54.         void
  55.     );
  56. }
  57. [
  58.     object,
  59.     uuid(0000011e-0000-0000-C000-000000000046),
  60.     pointer_default(unique)
  61. ]
  62. interface IOleCache : IUnknown
  63. {
  64.     typedef [unique] IOleCache *LPOLECACHE;
  65.     HRESULT Cache
  66.     (
  67.         [in, unique] FORMATETC *pformatetc,
  68.         [in] DWORD advf,
  69.         [out] DWORD *pdwConnection
  70.     );
  71.     HRESULT Uncache
  72.     (
  73.         [in] DWORD dwConnection
  74.     );
  75.     HRESULT EnumCache
  76.     (
  77.         [out] IEnumSTATDATA **ppenumSTATDATA
  78.     );
  79.     HRESULT InitCache
  80.     (
  81.         [in, unique] IDataObject *pDataObject
  82.     );
  83.     HRESULT SetData
  84.     (
  85.         [in, unique] FORMATETC *pformatetc,
  86.         [in, unique] STGMEDIUM *pmedium,
  87.         [in] BOOL fRelease
  88.     );
  89. }
  90. [
  91.     object,
  92.     uuid(00000128-0000-0000-C000-000000000046),
  93.     pointer_default(unique)
  94. ]
  95. interface IOleCache2 : IOleCache
  96. {
  97.     typedef [unique] IOleCache2 *LPOLECACHE2;
  98.     // Cache update Flags
  99.     const DWORD UPDFCACHE_NODATACACHE   =       0x00000001;
  100.     const DWORD UPDFCACHE_ONSAVECACHE   =       0x00000002;
  101.     const DWORD UPDFCACHE_ONSTOPCACHE   =       0x00000004;
  102.     const DWORD UPDFCACHE_NORMALCACHE   =       0x00000008;
  103.     const DWORD UPDFCACHE_IFBLANK       =       0x00000010;
  104.     const DWORD UPDFCACHE_ONLYIFBLANK   =       0x80000000;
  105.     const DWORD UPDFCACHE_IFBLANKORONSAVECACHE  =
  106.                     (UPDFCACHE_IFBLANK | UPDFCACHE_ONSAVECACHE);
  107.     const DWORD UPDFCACHE_ALL                   =
  108.                     ((DWORD)(~(UPDFCACHE_ONLYIFBLANK)));
  109.     const DWORD UPDFCACHE_ALLBUTNODATACACHE     =
  110.                     (UPDFCACHE_ALL & ((DWORD)(~UPDFCACHE_NODATACACHE)));
  111.     // IOleCache2::DiscardCache options
  112.     typedef [v1_enum] enum tagDISCARDCACHE
  113.     {
  114.         DISCARDCACHE_SAVEIFDIRTY =  0,  // Save all dirty cache before discarding
  115.         DISCARDCACHE_NOSAVE      =  1   // Don't save dirty caches before
  116.                                     // discarding
  117.     } DISCARDCACHE;
  118.     [local]
  119.     HRESULT UpdateCache
  120.     (
  121.         [in] LPDATAOBJECT pDataObject,
  122.         [in] DWORD grfUpdf,
  123.         [in] LPVOID pReserved
  124.     );
  125.     [call_as(UpdateCache)]
  126.     HRESULT RemoteUpdateCache
  127.     (
  128.         [in] LPDATAOBJECT pDataObject,
  129.         [in] DWORD grfUpdf,
  130.         [in] LONG_PTR pReserved
  131.     );
  132.     HRESULT DiscardCache
  133.     (
  134.         [in] DWORD dwDiscardOptions
  135.     );
  136. }
  137. [
  138.     object,
  139.     uuid(00000129-0000-0000-C000-000000000046)
  140. ]
  141. interface IOleCacheControl : IUnknown
  142. {
  143.     typedef [unique] IOleCacheControl *LPOLECACHECONTROL;
  144.     HRESULT OnRun
  145.     (
  146.         LPDATAOBJECT pDataObject
  147.     );
  148.     HRESULT OnStop (void);
  149. }
  150. [
  151.     object,
  152.     uuid(0000011a-0000-0000-C000-000000000046),
  153.     pointer_default(unique)
  154. ]
  155. interface IParseDisplayName : IUnknown
  156. {
  157.     typedef [unique] IParseDisplayName *LPPARSEDISPLAYNAME;
  158.     HRESULT ParseDisplayName
  159.     (
  160.         [in, unique] IBindCtx *pbc,
  161.         [in] LPOLESTR pszDisplayName,
  162.         [out] ULONG *pchEaten,
  163.         [out] IMoniker **ppmkOut
  164.     );
  165. }
  166. [
  167.     object,
  168.     uuid(0000011b-0000-0000-C000-000000000046),
  169.     pointer_default(unique)
  170. ]
  171. interface IOleContainer : IParseDisplayName
  172. {
  173.     typedef [unique] IOleContainer *LPOLECONTAINER;
  174.     HRESULT EnumObjects
  175.     (
  176.         [in] DWORD grfFlags,
  177.         [out] IEnumUnknown **ppenum
  178.     );
  179.     HRESULT LockContainer
  180.     (
  181.         [in] BOOL fLock
  182.     );
  183. }
  184. [
  185.     object,
  186.     uuid(00000118-0000-0000-C000-000000000046),
  187.     pointer_default(unique)
  188. ]
  189. interface IOleClientSite : IUnknown
  190. {
  191.     typedef [unique] IOleClientSite * LPOLECLIENTSITE;
  192.     HRESULT SaveObject
  193.     (
  194.         void
  195.     );
  196.     HRESULT GetMoniker
  197.     (
  198.         [in] DWORD dwAssign,
  199.         [in] DWORD dwWhichMoniker,
  200.         [out] IMoniker **ppmk
  201.     );
  202.     HRESULT GetContainer
  203.     (
  204.         [out] IOleContainer **ppContainer
  205.     );
  206.     HRESULT ShowObject
  207.     (
  208.         void
  209.     );
  210.     HRESULT OnShowWindow
  211.     (
  212.         [in] BOOL fShow
  213.     );
  214.     HRESULT RequestNewObjectLayout
  215.     (
  216.         void
  217.     );
  218. }
  219. [
  220.     object,
  221.     uuid(00000112-0000-0000-C000-000000000046),
  222.     pointer_default(unique)
  223. ]
  224. interface IOleObject : IUnknown
  225. {
  226.     typedef [unique] IOleObject *LPOLEOBJECT;
  227.     typedef enum tagOLEGETMONIKER
  228.     {
  229.         OLEGETMONIKER_ONLYIFTHERE = 1,
  230.         OLEGETMONIKER_FORCEASSIGN = 2,
  231.         OLEGETMONIKER_UNASSIGN    = 3,
  232.         OLEGETMONIKER_TEMPFORUSER = 4
  233.     } OLEGETMONIKER;
  234.     typedef enum tagOLEWHICHMK
  235.     {
  236.         OLEWHICHMK_CONTAINER = 1,
  237.         OLEWHICHMK_OBJREL    = 2,
  238.         OLEWHICHMK_OBJFULL   = 3
  239.     } OLEWHICHMK;
  240.     typedef enum tagUSERCLASSTYPE
  241.     {
  242.         USERCLASSTYPE_FULL    = 1,
  243.         USERCLASSTYPE_SHORT   = 2,
  244.         USERCLASSTYPE_APPNAME = 3,
  245.     } USERCLASSTYPE;
  246.     typedef enum tagOLEMISC
  247.     {
  248.         OLEMISC_RECOMPOSEONRESIZE           = 0x00000001,
  249.         OLEMISC_ONLYICONIC                  = 0x00000002,
  250.         OLEMISC_INSERTNOTREPLACE            = 0x00000004,
  251.         OLEMISC_STATIC                      = 0x00000008,
  252.         OLEMISC_CANTLINKINSIDE              = 0x00000010,
  253.         OLEMISC_CANLINKBYOLE1               = 0x00000020,
  254.         OLEMISC_ISLINKOBJECT                = 0x00000040,
  255.         OLEMISC_INSIDEOUT                   = 0x00000080,
  256.         OLEMISC_ACTIVATEWHENVISIBLE         = 0x00000100,
  257.         OLEMISC_RENDERINGISDEVICEINDEPENDENT= 0x00000200,
  258.         OLEMISC_INVISIBLEATRUNTIME          = 0x00000400,
  259.         OLEMISC_ALWAYSRUN                   = 0x00000800,
  260.         OLEMISC_ACTSLIKEBUTTON              = 0x00001000,
  261.         OLEMISC_ACTSLIKELABEL               = 0x00002000,
  262.         OLEMISC_NOUIACTIVATE                = 0x00004000,
  263.         OLEMISC_ALIGNABLE                   = 0x00008000,
  264.         OLEMISC_SIMPLEFRAME                 = 0x00010000,
  265.         OLEMISC_SETCLIENTSITEFIRST          = 0x00020000,
  266.         OLEMISC_IMEMODE                     = 0x00040000,
  267.         OLEMISC_IGNOREACTIVATEWHENVISIBLE   = 0x00080000,
  268.         OLEMISC_WANTSTOMENUMERGE            = 0x00100000,
  269.         OLEMISC_SUPPORTSMULTILEVELUNDO      = 0x00200000
  270.     } OLEMISC;
  271.     typedef enum tagOLECLOSE
  272.     {
  273.         OLECLOSE_SAVEIFDIRTY = 0,
  274.         OLECLOSE_NOSAVE      = 1,
  275.         OLECLOSE_PROMPTSAVE  = 2
  276.     } OLECLOSE;
  277. //IOleObject methods
  278.     HRESULT SetClientSite
  279.     (
  280.         [in, unique] IOleClientSite *pClientSite
  281.     );
  282.     HRESULT GetClientSite
  283.     (
  284.         [out] IOleClientSite **ppClientSite
  285.     );
  286.     HRESULT SetHostNames
  287.     (
  288.         [in] LPCOLESTR szContainerApp,
  289.         [in, unique] LPCOLESTR szContainerObj
  290.     );
  291.     HRESULT Close
  292.     (
  293.         [in] DWORD dwSaveOption
  294.     );
  295.     HRESULT SetMoniker
  296.     (
  297.         [in] DWORD dwWhichMoniker,
  298.         [in, unique] IMoniker *pmk
  299.     );
  300.     HRESULT GetMoniker
  301.     (
  302.         [in] DWORD dwAssign,
  303.         [in] DWORD dwWhichMoniker,
  304.         [out] IMoniker **ppmk
  305.     );
  306.     HRESULT InitFromData
  307.     (
  308.         [in, unique] IDataObject *pDataObject,
  309.         [in] BOOL fCreation,
  310.         [in] DWORD dwReserved
  311.     );
  312.     HRESULT GetClipboardData
  313.     (
  314.         [in] DWORD dwReserved,
  315.         [out] IDataObject **ppDataObject
  316.     );
  317.     HRESULT DoVerb
  318.     (
  319.         [in] LONG iVerb,
  320.         [in, unique] LPMSG lpmsg,
  321.         [in, unique] IOleClientSite *pActiveSite,
  322.         [in] LONG lindex,
  323.         [in] HWND hwndParent,
  324.         [in, unique] LPCRECT lprcPosRect
  325.     );
  326.     HRESULT EnumVerbs
  327.     (
  328.         [out] IEnumOLEVERB **ppEnumOleVerb
  329.     );
  330.     HRESULT Update
  331.     (
  332.         void
  333.     );
  334.     HRESULT IsUpToDate
  335.     (
  336.         void
  337.     );
  338.     HRESULT GetUserClassID
  339.     (
  340.         [out] CLSID *pClsid
  341.     );
  342.     HRESULT GetUserType
  343.     (
  344.         [in] DWORD dwFormOfType,
  345.         [out] LPOLESTR *pszUserType
  346.     );
  347.     HRESULT SetExtent
  348.     (
  349.         [in] DWORD dwDrawAspect,
  350.         [in] SIZEL *psizel
  351.     );
  352.     HRESULT GetExtent
  353.     (
  354.         [in] DWORD dwDrawAspect,
  355.         [out] SIZEL *psizel
  356.     );
  357.     HRESULT Advise
  358.     (
  359.         [in, unique] IAdviseSink *pAdvSink,
  360.         [out] DWORD *pdwConnection
  361.     );
  362.     HRESULT Unadvise
  363.     (
  364.         [in] DWORD dwConnection
  365.     );
  366.     HRESULT EnumAdvise
  367.     (
  368.         [out] IEnumSTATDATA **ppenumAdvise
  369.     );
  370.     HRESULT GetMiscStatus
  371.     (
  372.         [in] DWORD dwAspect,
  373.         [out] DWORD *pdwStatus
  374.     );
  375.     HRESULT SetColorScheme
  376.     (
  377.         [in] LOGPALETTE *pLogpal
  378.     );
  379. }
  380. [uuid(B0916C84-7416-101A-BCEA-08002B2B79EF)]
  381. interface IOLETypes
  382. {
  383.     /****** OLE value types ***********************************************/
  384.     /* rendering options */
  385.     typedef enum tagOLERENDER
  386.     {
  387.         OLERENDER_NONE   = 0,
  388.         OLERENDER_DRAW   = 1,
  389.         OLERENDER_FORMAT = 2,
  390.         OLERENDER_ASIS   = 3
  391.     } OLERENDER;
  392.     typedef  OLERENDER * LPOLERENDER;
  393.     /****** Clipboard Data structures *****************************************/
  394.     typedef struct tagOBJECTDESCRIPTOR
  395.     {
  396.        ULONG    cbSize;              // Size of structure in bytes
  397.        CLSID    clsid;               // CLSID of data being transferred
  398.        DWORD    dwDrawAspect;        // Display aspect of the object
  399.                                      //     normally DVASPECT_CONTENT or ICON.
  400.                                      //     dwDrawAspect will be 0 (which is NOT
  401.                                      //     DVASPECT_CONTENT) if the copier or
  402.                                      //     dragsource didn't draw the object to
  403.                                      //     begin with.
  404.        SIZEL    sizel;               // size of the object in HIMETRIC
  405.                                      //    sizel is opt.: will be (0,0) for apps
  406.                                      //    which don't draw the object being
  407.                                      //    transferred
  408.        POINTL   pointl;              // Offset in HIMETRIC units from the
  409.                                      //    upper-left corner of the obj where the
  410.                                      //    mouse went down for the drag.
  411.                                      //    NOTE: y coordinates increase downward.
  412.                                      //          x coordinates increase to right
  413.                                      //    pointl is opt.; it is only meaningful
  414.                                      //    if object is transfered via drag/drop.
  415.                                      //    (0, 0) if mouse position is unspecified
  416.                                      //    (eg. when obj transfered via clipboard)
  417.        DWORD    dwStatus;            // Misc. status flags for object. Flags are
  418.                                      //    defined by OLEMISC enum. these flags
  419.                                      //    are as would be returned
  420.                                      //    by IOleObject::GetMiscStatus.
  421.        DWORD    dwFullUserTypeName;  // Offset from beginning of structure to
  422.                                      //    null-terminated string that specifies
  423.                                      //    Full User Type Name of the object.
  424.                                      //    0 indicates string not present.
  425.        DWORD    dwSrcOfCopy;         // Offset from beginning of structure to
  426.                                      //    null-terminated string that specifies
  427.                                      //    source of the transfer.
  428.                                      //    dwSrcOfCOpy is normally implemented as
  429.                                      //    the display name of the temp-for-user
  430.                                      //    moniker which identifies the source of
  431.                                      //    the data.
  432.                                      //    0 indicates string not present.
  433.                                      //    NOTE: moniker assignment is NOT forced.
  434.                                      //    see IOleObject::GetMoniker(
  435.                                      //                OLEGETMONIKER_TEMPFORUSER)
  436.      /* variable sized string data may appear here */
  437.     } OBJECTDESCRIPTOR,  *POBJECTDESCRIPTOR,   *LPOBJECTDESCRIPTOR,
  438.       LINKSRCDESCRIPTOR, *PLINKSRCDESCRIPTOR,  *LPLINKSRCDESCRIPTOR;
  439. }
  440. [
  441.     object,
  442.     uuid(00000114-0000-0000-C000-000000000046),
  443.     pointer_default(unique)
  444. ]
  445. interface IOleWindow : IUnknown
  446. {
  447.     typedef [unique] IOleWindow *LPOLEWINDOW;
  448.     [input_sync]
  449.     HRESULT GetWindow
  450.     (
  451.         [out] HWND *phwnd
  452.     );
  453.     HRESULT ContextSensitiveHelp
  454.     (
  455.         [in] BOOL fEnterMode
  456.     );
  457. }
  458. [
  459.     object,
  460.     uuid(0000011d-0000-0000-C000-000000000046)
  461. ]
  462. interface IOleLink : IUnknown
  463. {
  464.     typedef [unique] IOleLink *LPOLELINK;
  465.     /* Link update options */
  466.     typedef enum tagOLEUPDATE
  467.     {
  468.         OLEUPDATE_ALWAYS=1,
  469.         OLEUPDATE_ONCALL=3
  470.     } OLEUPDATE;
  471.     typedef OLEUPDATE *LPOLEUPDATE;
  472.     typedef  OLEUPDATE *POLEUPDATE;
  473.     // for IOleLink::BindToSource
  474.     typedef enum tagOLELINKBIND
  475.     {
  476.         OLELINKBIND_EVENIFCLASSDIFF = 1,
  477.     } OLELINKBIND;
  478.     HRESULT SetUpdateOptions
  479.     (
  480.         [in] DWORD dwUpdateOpt
  481.     );
  482.     HRESULT GetUpdateOptions
  483.     (
  484.         [out] DWORD *pdwUpdateOpt
  485.     );
  486.     HRESULT SetSourceMoniker
  487.     (
  488.         [in, unique] IMoniker *pmk,
  489.         [in] REFCLSID rclsid
  490.     );
  491.     HRESULT GetSourceMoniker
  492.     (
  493.         [out] IMoniker **ppmk
  494.     );
  495.     HRESULT SetSourceDisplayName
  496.     (
  497.         [in]LPCOLESTR pszStatusText
  498.     );
  499.     HRESULT GetSourceDisplayName
  500.     (
  501.         [out] LPOLESTR *ppszDisplayName
  502.     );
  503.     HRESULT BindToSource
  504.     (
  505.         [in] DWORD bindflags,
  506.         [in, unique] IBindCtx *pbc
  507.     );
  508.     HRESULT BindIfRunning
  509.     (
  510.         void
  511.     );
  512.     HRESULT GetBoundSource
  513.     (
  514.         [out] IUnknown **ppunk
  515.     );
  516.     HRESULT UnbindSource
  517.     (
  518.         void
  519.     );
  520.     HRESULT Update
  521.     (
  522.         [in, unique] IBindCtx *pbc
  523.     );
  524. }
  525. [
  526.     object,
  527.     uuid(0000011c-0000-0000-C000-000000000046),
  528.     pointer_default(unique)
  529. ]
  530. interface IOleItemContainer : IOleContainer
  531. {
  532.     typedef [unique] IOleItemContainer *LPOLEITEMCONTAINER;
  533.     typedef enum tagBINDSPEED
  534.     {
  535.         BINDSPEED_INDEFINITE    = 1,
  536.         BINDSPEED_MODERATE      = 2,
  537.         BINDSPEED_IMMEDIATE     = 3
  538.     } BINDSPEED;
  539.     typedef [v1_enum] enum tagOLECONTF
  540.     {
  541.         OLECONTF_EMBEDDINGS     = 1,
  542.         OLECONTF_LINKS          = 2,
  543.         OLECONTF_OTHERS         = 4,
  544.         OLECONTF_ONLYUSER       = 8,
  545.         OLECONTF_ONLYIFRUNNING  = 16
  546.     } OLECONTF;
  547.     HRESULT GetObject(
  548.         [in] LPOLESTR pszItem,
  549.         [in] DWORD dwSpeedNeeded,
  550.         [in, unique] IBindCtx *pbc,
  551.         [in] REFIID riid,
  552.         [out, iid_is(riid)] void **ppvObject);
  553.     HRESULT GetObjectStorage(
  554.         [in] LPOLESTR pszItem,
  555.         [in, unique] IBindCtx *pbc,
  556.         [in] REFIID riid,
  557.         [out, iid_is(riid)] void **ppvStorage);
  558.     HRESULT IsRunning(
  559.         [in] LPOLESTR pszItem);
  560. }
  561. [
  562.     object,
  563.     uuid(00000115-0000-0000-C000-000000000046),
  564.     pointer_default(unique)
  565. ]
  566. interface IOleInPlaceUIWindow : IOleWindow
  567. {
  568.     typedef [unique] IOleInPlaceUIWindow *LPOLEINPLACEUIWINDOW;
  569.     typedef RECT BORDERWIDTHS;
  570.     typedef LPRECT LPBORDERWIDTHS;
  571.     typedef LPCRECT LPCBORDERWIDTHS;
  572.     [input_sync]
  573.     HRESULT GetBorder
  574.     (
  575.         [out] LPRECT lprectBorder
  576.     );
  577.     [input_sync]
  578.     HRESULT RequestBorderSpace
  579.     (
  580.         [in, unique] LPCBORDERWIDTHS pborderwidths
  581.     );
  582.     [input_sync]
  583.     HRESULT SetBorderSpace
  584.     (
  585.         [in, unique] LPCBORDERWIDTHS pborderwidths
  586.     );
  587.   HRESULT SetActiveObject
  588.     (
  589.         [in, unique] IOleInPlaceActiveObject *pActiveObject,
  590.     [in, string, unique] LPCOLESTR pszObjName
  591.     );
  592. }
  593. [
  594.     object,
  595.     uuid(00000117-0000-0000-C000-000000000046)
  596. ]
  597. interface IOleInPlaceActiveObject : IOleWindow
  598. {
  599.     typedef [unique] IOleInPlaceActiveObject *LPOLEINPLACEACTIVEOBJECT;
  600.     [local]
  601.     HRESULT TranslateAccelerator
  602.     (
  603.         [in] LPMSG lpmsg
  604.     );
  605.     [call_as(TranslateAccelerator)]
  606.     HRESULT RemoteTranslateAccelerator();
  607.     [input_sync]
  608.     HRESULT OnFrameWindowActivate
  609.     (
  610.         [in] BOOL fActivate
  611.     );
  612.     [input_sync]
  613.     HRESULT OnDocWindowActivate
  614.     (
  615.         [in] BOOL fActivate
  616.     );
  617.     [local]
  618.     HRESULT ResizeBorder
  619.     (
  620.         [in] LPCRECT prcBorder,
  621.         [in, unique] IOleInPlaceUIWindow *pUIWindow,
  622.         [in] BOOL fFrameWindow
  623.     );
  624.     [call_as(ResizeBorder), input_sync]
  625.     HRESULT RemoteResizeBorder
  626.     (
  627.         [in] LPCRECT prcBorder,
  628.         [in] REFIID riid,
  629.         [in, unique, iid_is(riid)] IOleInPlaceUIWindow *pUIWindow,
  630.         [in] BOOL fFrameWindow
  631.     );
  632.     HRESULT EnableModeless
  633.     (
  634.         [in] BOOL fEnable
  635.     );
  636. }
  637. [
  638.     object,
  639.     uuid(00000116-0000-0000-C000-000000000046),
  640.     pointer_default(unique)
  641. ]
  642. interface IOleInPlaceFrame : IOleInPlaceUIWindow
  643. {
  644.     typedef [unique] IOleInPlaceFrame *LPOLEINPLACEFRAME;
  645. typedef struct tagOIFI          // OleInPlaceFrameInfo
  646. {
  647.     UINT    cb;
  648.     BOOL    fMDIApp;
  649.     HWND    hwndFrame;
  650.     HACCEL  haccel;
  651.     UINT    cAccelEntries;
  652. } OLEINPLACEFRAMEINFO, * LPOLEINPLACEFRAMEINFO;
  653. typedef struct tagOleMenuGroupWidths
  654. {
  655.     LONG    width[6];
  656. } OLEMENUGROUPWIDTHS, * LPOLEMENUGROUPWIDTHS;
  657.     typedef HGLOBAL HOLEMENU;
  658.     HRESULT InsertMenus
  659.     (
  660.         [in] HMENU hmenuShared,
  661.         [in,out] LPOLEMENUGROUPWIDTHS lpMenuWidths
  662.     );
  663.     [input_sync]
  664.     HRESULT SetMenu
  665.     (
  666.         [in] HMENU hmenuShared,
  667.         [in] HOLEMENU holemenu,
  668.         [in] HWND hwndActiveObject
  669.     );
  670.     HRESULT RemoveMenus
  671.     (
  672.         [in] HMENU hmenuShared
  673.     );
  674.     [input_sync]
  675.     HRESULT SetStatusText
  676.     (
  677.         [in, unique] LPCOLESTR pszStatusText
  678.     );
  679.     HRESULT EnableModeless
  680.     (
  681.         [in] BOOL fEnable
  682.     );
  683.     HRESULT TranslateAccelerator
  684.     (
  685.         [in] LPMSG lpmsg,
  686.         [in] WORD wID
  687.     );
  688. }
  689. [
  690.     object,
  691.     uuid(00000113-0000-0000-C000-000000000046),
  692.     pointer_default(unique)
  693. ]
  694. interface IOleInPlaceObject : IOleWindow
  695. {
  696.     typedef [unique] IOleInPlaceObject *LPOLEINPLACEOBJECT;
  697.     HRESULT InPlaceDeactivate
  698.     (
  699.         void
  700.     );
  701.     HRESULT UIDeactivate
  702.     (
  703.         void
  704.     );
  705.     [input_sync]
  706.     HRESULT SetObjectRects
  707.     (
  708.         [in] LPCRECT lprcPosRect,
  709.         [in] LPCRECT lprcClipRect
  710.     );
  711.     HRESULT ReactivateAndUndo
  712.     (
  713.         void
  714.     );
  715. }
  716. [
  717.     object,
  718.     uuid(00000119-0000-0000-C000-000000000046),
  719.     pointer_default(unique)
  720. ]
  721. interface IOleInPlaceSite : IOleWindow
  722. {
  723.     typedef [unique] IOleInPlaceSite *LPOLEINPLACESITE;
  724.     HRESULT CanInPlaceActivate
  725.     (
  726.         void
  727.     );
  728.     HRESULT OnInPlaceActivate
  729.     (
  730.         void
  731.     );
  732.     HRESULT OnUIActivate
  733.     (
  734.         void
  735.     );
  736.     HRESULT GetWindowContext
  737.     (
  738.         [out] IOleInPlaceFrame **ppFrame,
  739.         [out] IOleInPlaceUIWindow **ppDoc,
  740.         [out] LPRECT lprcPosRect,
  741.         [out] LPRECT lprcClipRect,
  742.         [in, out] LPOLEINPLACEFRAMEINFO lpFrameInfo
  743.     );
  744.     HRESULT Scroll
  745.     (
  746.         [in] SIZE scrollExtant
  747.     );
  748.     HRESULT OnUIDeactivate
  749.     (
  750.         [in] BOOL fUndoable
  751.     );
  752.     HRESULT OnInPlaceDeactivate
  753.     (
  754.         void
  755.     );
  756.     HRESULT DiscardUndoState
  757.     (
  758.         void
  759.     );
  760.     HRESULT DeactivateAndUndo
  761.     (
  762.         void
  763.     );
  764.     HRESULT OnPosRectChange
  765.     (
  766.         [in] LPCRECT lprcPosRect
  767.     );
  768. }
  769. [
  770.     object,
  771.     uuid(0000012a-0000-0000-C000-000000000046)
  772. ]
  773. interface IContinue : IUnknown
  774. {
  775.     HRESULT FContinue();
  776. }
  777. [
  778.     object,
  779.     uuid(0000010d-0000-0000-C000-000000000046)
  780. ]
  781. interface IViewObject : IUnknown
  782. {
  783.     typedef [unique] IViewObject *LPVIEWOBJECT;
  784.     [local]
  785.     HRESULT Draw
  786.     (
  787.         [in] DWORD dwDrawAspect,
  788.         [in] LONG lindex,
  789.         [in, unique] void * pvAspect,
  790.         [in, unique] DVTARGETDEVICE *ptd,
  791.         [in] HDC hdcTargetDev,
  792.         [in] HDC hdcDraw,
  793.         [in] LPCRECTL lprcBounds,
  794.         [in, unique] LPCRECTL lprcWBounds,
  795.         [in] BOOL (*pfnContinue)(ULONG_PTR dwContinue),
  796.         [in] ULONG_PTR dwContinue
  797.     );
  798.     [call_as(Draw)]
  799.     HRESULT RemoteDraw
  800.     (
  801.         [in] DWORD dwDrawAspect,
  802.         [in] LONG lindex,
  803.         [in] ULONG_PTR pvAspect,
  804.         [in, unique] DVTARGETDEVICE *ptd,
  805.         [in] ULONG_PTR hdcTargetDev,
  806.         [in] ULONG_PTR hdcDraw,
  807.         [in] LPCRECTL lprcBounds,
  808.         [in, unique] LPCRECTL lprcWBounds,
  809.         [in] IContinue *pContinue
  810.     );
  811.     [local]
  812.     HRESULT GetColorSet
  813.     (
  814.         [in] DWORD dwDrawAspect,
  815.         [in] LONG lindex,
  816.         [in, unique] void *pvAspect,
  817.         [in, unique] DVTARGETDEVICE *ptd,
  818.         [in] HDC hicTargetDev,
  819.         [out] LOGPALETTE **ppColorSet
  820.     );
  821.     [call_as(GetColorSet)]
  822.     HRESULT RemoteGetColorSet
  823.     (
  824.         [in] DWORD dwDrawAspect,
  825.         [in] LONG lindex,
  826.         [in] ULONG_PTR pvAspect,
  827.         [in, unique] DVTARGETDEVICE *ptd,
  828.         [in] ULONG_PTR hicTargetDev,
  829.         [out] LOGPALETTE **ppColorSet
  830.     );
  831.     [local]
  832.     HRESULT Freeze
  833.     (
  834.         [in] DWORD dwDrawAspect,
  835.         [in] LONG lindex,
  836.         [in, unique] void *pvAspect,
  837.         [out] DWORD *pdwFreeze
  838.     );
  839.     [call_as(Freeze)]
  840.     HRESULT RemoteFreeze
  841.     (
  842.         [in] DWORD dwDrawAspect,
  843.         [in] LONG lindex,
  844.         [in] ULONG_PTR pvAspect,
  845.         [out] DWORD *pdwFreeze
  846.     );
  847.     HRESULT Unfreeze
  848.     (
  849.         [in] DWORD dwFreeze
  850.     );
  851.     HRESULT SetAdvise
  852.     (
  853.         [in] DWORD aspects,
  854.         [in] DWORD advf,
  855.         [in, unique] IAdviseSink *pAdvSink
  856.     );
  857.     [local]
  858.     HRESULT GetAdvise
  859.     (
  860.         [out, unique] DWORD *pAspects,
  861.         [out, unique] DWORD *pAdvf,
  862.         [out] IAdviseSink **ppAdvSink
  863.     );
  864.     [call_as(GetAdvise)]
  865.     HRESULT RemoteGetAdvise
  866.     (
  867.         [out] DWORD *pAspects,
  868.         [out] DWORD *pAdvf,
  869.         [out] IAdviseSink **ppAdvSink
  870.     );
  871. }
  872. [
  873.     object,
  874.     uuid(00000127-0000-0000-C000-000000000046)
  875. ]
  876. interface IViewObject2 : IViewObject
  877. {
  878.     typedef [unique] IViewObject2 *LPVIEWOBJECT2;
  879.     HRESULT GetExtent
  880.     (
  881.         [in]  DWORD dwDrawAspect,
  882.         [in]  LONG lindex,
  883.         [in, unique]  DVTARGETDEVICE* ptd,
  884.         [out] LPSIZEL lpsizel
  885.     );
  886. }
  887. [
  888.     local,
  889.     object,
  890.     uuid(00000121-0000-0000-C000-000000000046)
  891. ]
  892. interface IDropSource : IUnknown
  893. {
  894.     typedef [unique] IDropSource *LPDROPSOURCE;
  895.     HRESULT QueryContinueDrag
  896.     (
  897.         [in] BOOL fEscapePressed,
  898.         [in] DWORD grfKeyState
  899.     );
  900.     HRESULT GiveFeedback
  901.     (
  902.         [in] DWORD dwEffect
  903.     );
  904. }
  905. [
  906.     object,
  907.     uuid(00000122-0000-0000-C000-000000000046),
  908.     pointer_default(unique)
  909. ]
  910. interface IDropTarget : IUnknown
  911. {
  912.     typedef [unique] IDropTarget *LPDROPTARGET;
  913.     const DWORD MK_ALT = 0x0020;
  914.     const DWORD DROPEFFECT_NONE = 0;
  915.     const DWORD DROPEFFECT_COPY = 1;
  916.     const DWORD DROPEFFECT_MOVE = 2;
  917.     const DWORD DROPEFFECT_LINK = 4;
  918.     const DWORD DROPEFFECT_SCROLL = 0x80000000;
  919.     cpp_quote("// default inset-width of the hot zone, in pixels")
  920.     cpp_quote("//   typical use: GetProfileInt("windows","DragScrollInset",DD_DEFSCROLLINSET)")
  921.     const DWORD DD_DEFSCROLLINSET = 11;
  922.     cpp_quote("// default delay before scrolling, in milliseconds")
  923.     cpp_quote("//   typical use: GetProfileInt("windows","DragScrollDelay",DD_DEFSCROLLDELAY)")
  924.     const DWORD DD_DEFSCROLLDELAY = 50;
  925.     cpp_quote("// default scroll interval, in milliseconds")
  926.     cpp_quote("//   typical use: GetProfileInt("windows","DragScrollInterval", DD_DEFSCROLLINTERVAL)")
  927.     const DWORD DD_DEFSCROLLINTERVAL = 50;
  928.     cpp_quote("// default delay before dragging should start, in milliseconds")
  929.     cpp_quote("//   typical use: GetProfileInt("windows", "DragDelay", DD_DEFDRAGDELAY)")
  930.     const DWORD DD_DEFDRAGDELAY = 200;
  931.     cpp_quote("// default minimum distance (radius) before dragging should start, in pixels")
  932.     cpp_quote("//   typical use: GetProfileInt("windows", "DragMinDist", DD_DEFDRAGMINDIST)")
  933.     const DWORD DD_DEFDRAGMINDIST = 2;
  934.     HRESULT DragEnter
  935.     (
  936.         [in, unique] IDataObject *pDataObj,
  937.         [in] DWORD grfKeyState,
  938.         [in] POINTL pt,
  939.         [in, out] DWORD *pdwEffect
  940.     );
  941.     HRESULT DragOver
  942.     (
  943.         [in] DWORD grfKeyState,
  944.         [in] POINTL pt,
  945.         [in, out] DWORD *pdwEffect
  946.     );
  947.     HRESULT DragLeave
  948.     (
  949.         void
  950.     );
  951.     HRESULT Drop
  952.     (
  953.         [in, unique] IDataObject *pDataObj,
  954.         [in] DWORD grfKeyState,
  955.         [in] POINTL pt,
  956.         [in, out] DWORD *pdwEffect
  957.     );
  958. }
  959. [
  960.     object,
  961.     uuid(00000104-0000-0000-C000-000000000046),
  962.     pointer_default(unique)
  963. ]
  964. interface IEnumOLEVERB : IUnknown
  965. {
  966.     typedef [unique] IEnumOLEVERB *LPENUMOLEVERB;
  967.     typedef struct tagOLEVERB {
  968.         LONG    lVerb;
  969.         LPOLESTR  lpszVerbName;
  970.         DWORD   fuFlags;
  971.         DWORD grfAttribs;
  972.         } OLEVERB, * LPOLEVERB;
  973.     // Bitwise verb attributes used in OLEVERB.grfAttribs
  974.     typedef [v1_enum] enum tagOLEVERBATTRIB // bitwise
  975.     {
  976.         OLEVERBATTRIB_NEVERDIRTIES = 1,
  977.         OLEVERBATTRIB_ONCONTAINERMENU = 2
  978.     } OLEVERBATTRIB;
  979.     [local]
  980.     HRESULT Next(
  981.         [in] ULONG celt,
  982.         [out, size_is(celt), length_is(*pceltFetched)]
  983.         LPOLEVERB rgelt,
  984.         [out] ULONG *pceltFetched);
  985.     [call_as(Next)]
  986.     HRESULT RemoteNext(
  987.         [in] ULONG celt,
  988.         [out, size_is(celt), length_is(*pceltFetched)]
  989.         LPOLEVERB rgelt,
  990.         [out] ULONG *pceltFetched);
  991.     HRESULT Skip(
  992.         [in] ULONG celt);
  993.     HRESULT Reset();
  994.     HRESULT Clone(
  995.         [out] IEnumOLEVERB **ppenum);
  996. }