home *** CD-ROM | disk | FTP | other *** search
/ Power GUI Programming with VisualAge C++ / powergui.iso / trialva / ibmcppw / sdk / winh / oleidl.idl < prev    next >
Encoding:
Text File  |  1995-07-11  |  25.8 KB  |  1,198 lines

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