Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1251 lines
27 KiB

  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. }