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.

1769 lines
41 KiB

  1. //+---------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (c) Microsoft Corporation. All rights reserved.
  5. //
  6. // File: ocidl.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 "oleidl.idl";
  20. import "oaidl.idl";
  21. import "servprov.idl";
  22. import "urlmon.idl";
  23. #endif
  24. interface IEnumConnections;
  25. interface IEnumConnectionPoints;
  26. interface IConnectionPoint;
  27. interface IConnectionPointContainer;
  28. interface IClassFactory2;
  29. interface IProvideClassInfo;
  30. interface IProvideClassInfo2;
  31. interface IProvideMultipleClassInfo;
  32. interface IOleControl;
  33. interface IOleControlSite;
  34. interface IPropertyPage;
  35. interface IPropertyPage2;
  36. interface IPropertyPageSite;
  37. interface IPropertyNotifySink;
  38. interface ISpecifyPropertyPages;
  39. interface IPersistMemory;
  40. interface IPersistStreamInit;
  41. interface IPersistPropertyBag;
  42. interface ISimpleFrameSite;
  43. interface IFont;
  44. interface IPicture;
  45. interface IFontEventsDisp;
  46. interface IFontDisp;
  47. interface IPictureDisp;
  48. interface IAdviseSinkEx;
  49. interface IOleInPlaceObjectWindowless;
  50. interface IOleInPlaceSiteEx;
  51. interface IOleInPlaceSiteWindowless;
  52. interface IViewObjectEx;
  53. interface IOleUndoUnit;
  54. interface IOleParentUndoUnit;
  55. interface IEnumOleUndoUnits;
  56. interface IOleUndoManager;
  57. interface IPointerInactive;
  58. interface IObjectWithSite;
  59. interface IErrorLog;
  60. interface IPropertyBag;
  61. interface IPerPropertyBrowsing;
  62. interface IPropertyBag2;
  63. interface IPersistPropertyBag2;
  64. interface IQuickActivate;
  65. #if !defined(_DCOM_OA_REMOTING_) && !defined(_DCOM_OC_REMOTING_)
  66. [
  67. version(1.0), pointer_default(unique)
  68. ]
  69. interface IOleControlTypes
  70. {
  71. typedef [v1_enum] enum tagUASFLAGS {
  72. UAS_NORMAL = 0x00,
  73. UAS_BLOCKED = 0x01,
  74. UAS_NOPARENTENABLE = 0x02,
  75. UAS_MASK = 0x03
  76. } UASFLAGS;
  77. cpp_quote("/* State values for the DISPID_READYSTATE property */")
  78. typedef [v1_enum] enum tagREADYSTATE {
  79. READYSTATE_UNINITIALIZED= 0, // Never used except as default init state
  80. READYSTATE_LOADING = 1, // Control is loading its properties
  81. READYSTATE_LOADED = 2, // Has been init'ed via IPersist*::Load
  82. READYSTATE_INTERACTIVE = 3, // Interactive but not all data available
  83. READYSTATE_COMPLETE = 4 // Control has all its data
  84. } READYSTATE;
  85. #if _MIDL_USER_MARSHAL_DISABLED
  86. #define HWND UserHWND
  87. #define HACCEL UserHACCEL
  88. #define HDC UserHDC
  89. #define HFONT UserHFONT
  90. #define MSG UserMSG
  91. #define BSTR UserBSTR
  92. #define VARIANT UserVARIANT
  93. #define EXCEPINFO UserEXCEPINFO
  94. typedef struct tagUserHWND {
  95. wireHWND pRemHwnd;
  96. } UserHWND;
  97. typedef struct tagUserHWND UserHACCEL;
  98. typedef struct tagUserHWND UserHDC;
  99. typedef struct tagUserHWND UserHFONT;
  100. typedef struct tagUserMSG {
  101. wireHWND pRemHwnd;
  102. UINT message;
  103. WPARAM wParam;
  104. LPARAM lParam;
  105. DWORD time;
  106. POINT pt;
  107. } UserMSG;
  108. typedef struct tagUserBSTR {
  109. wireBSTR pBstrBlob;
  110. } UserBSTR;
  111. typedef struct tagVARIANT_BLOB {
  112. DWORD clSize;
  113. DWORD rpcReserved;
  114. [size_is(clSize-1)] ULONGLONG ahData[];
  115. } * wireVARIANT_BLOB;
  116. typedef struct tagUserVARIANT {
  117. wireVARIANT_BLOB pVarBlob;
  118. } UserVARIANT;
  119. typedef struct tagUserEXCEPINFO {
  120. WORD wCode;
  121. WORD wReserved;
  122. wireBSTR bstrSource;
  123. wireBSTR bstrDescription;
  124. wireBSTR bstrHelpFile;
  125. DWORD dwHelpContext;
  126. ULONG_PTR pvReserved;
  127. ULONG_PTR pfnDeferredFillIn;
  128. SCODE scode;
  129. } UserEXCEPINFO;
  130. #endif // _MIDL_USER_MARSHAL_DISABLED
  131. }
  132. [
  133. object,
  134. uuid(B196B287-BAB4-101A-B69C-00AA00341D07),
  135. pointer_default(unique)
  136. ]
  137. interface IEnumConnections : IUnknown
  138. {
  139. typedef IEnumConnections * PENUMCONNECTIONS;
  140. typedef IEnumConnections * LPENUMCONNECTIONS;
  141. typedef struct tagCONNECTDATA {
  142. IUnknown * pUnk;
  143. DWORD dwCookie;
  144. } CONNECTDATA;
  145. typedef struct tagCONNECTDATA * PCONNECTDATA;
  146. typedef struct tagCONNECTDATA * LPCONNECTDATA;
  147. [local]
  148. HRESULT Next(
  149. [in] ULONG cConnections,
  150. [out, size_is(cConnections), length_is(*pcFetched)]
  151. LPCONNECTDATA rgcd,
  152. [out] ULONG * pcFetched
  153. );
  154. [call_as(Next)]
  155. HRESULT RemoteNext(
  156. [in] ULONG cConnections,
  157. [out, size_is(cConnections), length_is(*pcFetched)]
  158. LPCONNECTDATA rgcd,
  159. [out] ULONG * pcFetched
  160. );
  161. HRESULT Skip(
  162. [in] ULONG cConnections
  163. );
  164. HRESULT Reset(
  165. void
  166. );
  167. HRESULT Clone(
  168. [out] IEnumConnections ** ppEnum
  169. );
  170. }
  171. [
  172. object,
  173. uuid(B196B286-BAB4-101A-B69C-00AA00341D07),
  174. pointer_default(unique)
  175. ]
  176. interface IConnectionPoint : IUnknown
  177. {
  178. typedef IConnectionPoint * PCONNECTIONPOINT;
  179. typedef IConnectionPoint * LPCONNECTIONPOINT;
  180. HRESULT GetConnectionInterface(
  181. [out] IID * pIID
  182. );
  183. HRESULT GetConnectionPointContainer(
  184. [out] IConnectionPointContainer ** ppCPC
  185. );
  186. HRESULT Advise(
  187. [in] IUnknown * pUnkSink,
  188. [out] DWORD * pdwCookie
  189. );
  190. HRESULT Unadvise(
  191. [in] DWORD dwCookie
  192. );
  193. HRESULT EnumConnections(
  194. [out] IEnumConnections ** ppEnum
  195. );
  196. }
  197. [
  198. object,
  199. uuid(B196B285-BAB4-101A-B69C-00AA00341D07),
  200. pointer_default(unique)
  201. ]
  202. interface IEnumConnectionPoints : IUnknown
  203. {
  204. typedef IEnumConnectionPoints * PENUMCONNECTIONPOINTS;
  205. typedef IEnumConnectionPoints * LPENUMCONNECTIONPOINTS;
  206. [local]
  207. HRESULT Next(
  208. [in] ULONG cConnections,
  209. [out, size_is(cConnections), length_is(*pcFetched)]
  210. LPCONNECTIONPOINT * ppCP,
  211. [out] ULONG * pcFetched
  212. );
  213. [call_as(Next)]
  214. HRESULT RemoteNext(
  215. [in] ULONG cConnections,
  216. [out, size_is(cConnections), length_is(*pcFetched)]
  217. LPCONNECTIONPOINT * ppCP,
  218. [out] ULONG * pcFetched
  219. );
  220. HRESULT Skip(
  221. [in] ULONG cConnections
  222. );
  223. HRESULT Reset(
  224. void
  225. );
  226. HRESULT Clone(
  227. [out] IEnumConnectionPoints ** ppEnum
  228. );
  229. }
  230. [
  231. object,
  232. uuid(B196B284-BAB4-101A-B69C-00AA00341D07),
  233. pointer_default(unique)
  234. ]
  235. interface IConnectionPointContainer : IUnknown
  236. {
  237. typedef IConnectionPointContainer * PCONNECTIONPOINTCONTAINER;
  238. typedef IConnectionPointContainer * LPCONNECTIONPOINTCONTAINER;
  239. HRESULT EnumConnectionPoints
  240. (
  241. [out] IEnumConnectionPoints ** ppEnum
  242. );
  243. HRESULT FindConnectionPoint
  244. (
  245. [in] REFIID riid,
  246. [out] IConnectionPoint ** ppCP
  247. );
  248. }
  249. [
  250. object,
  251. uuid(B196B28F-BAB4-101A-B69C-00AA00341D07),
  252. pointer_default(unique)
  253. ]
  254. interface IClassFactory2 : IClassFactory
  255. {
  256. typedef IClassFactory2 * LPCLASSFACTORY2;
  257. typedef struct tagLICINFO {
  258. LONG cbLicInfo;
  259. BOOL fRuntimeKeyAvail;
  260. BOOL fLicVerified;
  261. } LICINFO;
  262. typedef struct tagLICINFO * LPLICINFO;
  263. HRESULT GetLicInfo(
  264. [out] LICINFO * pLicInfo
  265. );
  266. HRESULT RequestLicKey(
  267. [in] DWORD dwReserved,
  268. [out] BSTR * pBstrKey
  269. );
  270. [local]
  271. HRESULT CreateInstanceLic(
  272. [in] IUnknown * pUnkOuter,
  273. [in] IUnknown * pUnkReserved,
  274. [in] REFIID riid,
  275. [in] BSTR bstrKey,
  276. [out, iid_is(riid)] PVOID * ppvObj
  277. );
  278. [call_as(CreateInstanceLic)]
  279. HRESULT RemoteCreateInstanceLic(
  280. [in] REFIID riid,
  281. [in] BSTR bstrKey,
  282. [out, iid_is(riid)] IUnknown ** ppvObj
  283. );
  284. }
  285. [
  286. object,
  287. uuid(B196B283-BAB4-101A-B69C-00AA00341D07),
  288. pointer_default(unique)
  289. ]
  290. interface IProvideClassInfo : IUnknown
  291. {
  292. typedef IProvideClassInfo * LPPROVIDECLASSINFO;
  293. HRESULT GetClassInfo(
  294. [out] ITypeInfo ** ppTI
  295. );
  296. }
  297. [
  298. object,
  299. uuid(A6BC3AC0-DBAA-11CE-9DE3-00AA004BB851),
  300. pointer_default(unique)
  301. ]
  302. interface IProvideClassInfo2 : IProvideClassInfo
  303. {
  304. typedef IProvideClassInfo2 * LPPROVIDECLASSINFO2;
  305. typedef enum tagGUIDKIND {
  306. GUIDKIND_DEFAULT_SOURCE_DISP_IID = 1
  307. } GUIDKIND;
  308. HRESULT GetGUID(
  309. [in] DWORD dwGuidKind,
  310. [out] GUID * pGUID
  311. );
  312. }
  313. [
  314. object,
  315. uuid(A7ABA9C1-8983-11cf-8F20-00805F2CD064),
  316. pointer_default(unique)
  317. ]
  318. interface IProvideMultipleClassInfo : IProvideClassInfo2
  319. {
  320. cpp_quote("#define MULTICLASSINFO_GETTYPEINFO 0x00000001")
  321. cpp_quote("#define MULTICLASSINFO_GETNUMRESERVEDDISPIDS 0x00000002")
  322. cpp_quote("#define MULTICLASSINFO_GETIIDPRIMARY 0x00000004")
  323. cpp_quote("#define MULTICLASSINFO_GETIIDSOURCE 0x00000008")
  324. cpp_quote("#define TIFLAGS_EXTENDDISPATCHONLY 0x00000001")
  325. typedef IProvideMultipleClassInfo * LPPROVIDEMULTIPLECLASSINFO;
  326. HRESULT GetMultiTypeInfoCount(
  327. [out] ULONG * pcti
  328. );
  329. HRESULT GetInfoOfIndex(
  330. [in] ULONG iti,
  331. [in] DWORD dwFlags,
  332. [out] ITypeInfo ** pptiCoClass,
  333. [out] DWORD * pdwTIFlags,
  334. [out] ULONG * pcdispidReserved,
  335. [out] IID * piidPrimary,
  336. [out] IID * piidSource
  337. );
  338. }
  339. [
  340. object,
  341. uuid(B196B288-BAB4-101A-B69C-00AA00341D07),
  342. pointer_default(unique)
  343. ]
  344. interface IOleControl : IUnknown
  345. {
  346. typedef IOleControl * LPOLECONTROL;
  347. typedef struct tagCONTROLINFO {
  348. ULONG cb;
  349. HACCEL hAccel;
  350. USHORT cAccel;
  351. DWORD dwFlags;
  352. } CONTROLINFO;
  353. typedef struct tagCONTROLINFO * LPCONTROLINFO;
  354. typedef enum tagCTRLINFO {
  355. CTRLINFO_EATS_RETURN = 1,
  356. CTRLINFO_EATS_ESCAPE = 2
  357. } CTRLINFO;
  358. HRESULT GetControlInfo(
  359. [out] CONTROLINFO * pCI
  360. );
  361. HRESULT OnMnemonic(
  362. [in] MSG * pMsg
  363. );
  364. HRESULT OnAmbientPropertyChange(
  365. [in] DISPID dispID
  366. );
  367. HRESULT FreezeEvents(
  368. [in] BOOL bFreeze
  369. );
  370. }
  371. [
  372. object,
  373. uuid(B196B289-BAB4-101A-B69C-00AA00341D07),
  374. pointer_default(unique)
  375. ]
  376. interface IOleControlSite : IUnknown
  377. {
  378. typedef IOleControlSite * LPOLECONTROLSITE;
  379. typedef struct tagPOINTF {
  380. FLOAT x;
  381. FLOAT y;
  382. } POINTF;
  383. typedef struct tagPOINTF * LPPOINTF;
  384. typedef enum tagXFORMCOORDS {
  385. XFORMCOORDS_POSITION = 0x1,
  386. XFORMCOORDS_SIZE = 0x2,
  387. XFORMCOORDS_HIMETRICTOCONTAINER = 0x4,
  388. XFORMCOORDS_CONTAINERTOHIMETRIC = 0x8,
  389. XFORMCOORDS_EVENTCOMPAT = 0x10
  390. } XFORMCOORDS;
  391. HRESULT OnControlInfoChanged(
  392. void
  393. );
  394. HRESULT LockInPlaceActive(
  395. [in] BOOL fLock
  396. );
  397. HRESULT GetExtendedControl(
  398. [out] IDispatch ** ppDisp
  399. );
  400. HRESULT TransformCoords(
  401. [in, out] POINTL * pPtlHimetric,
  402. [in, out] POINTF * pPtfContainer,
  403. [in] DWORD dwFlags
  404. );
  405. HRESULT TranslateAccelerator(
  406. [in] MSG * pMsg,
  407. [in] DWORD grfModifiers
  408. );
  409. HRESULT OnFocus(
  410. [in] BOOL fGotFocus
  411. );
  412. HRESULT ShowPropertyFrame(
  413. void
  414. );
  415. }
  416. [
  417. object,
  418. uuid(B196B28D-BAB4-101A-B69C-00AA00341D07),
  419. pointer_default(unique)
  420. ]
  421. interface IPropertyPage : IUnknown
  422. {
  423. typedef IPropertyPage * LPPROPERTYPAGE;
  424. typedef struct tagPROPPAGEINFO {
  425. ULONG cb;
  426. LPOLESTR pszTitle;
  427. SIZE size;
  428. LPOLESTR pszDocString;
  429. LPOLESTR pszHelpFile;
  430. DWORD dwHelpContext;
  431. } PROPPAGEINFO;
  432. typedef struct tagPROPPAGEINFO * LPPROPPAGEINFO;
  433. HRESULT SetPageSite(
  434. [in] IPropertyPageSite * pPageSite
  435. );
  436. HRESULT Activate(
  437. [in] HWND hWndParent,
  438. [in] LPCRECT pRect,
  439. [in] BOOL bModal
  440. );
  441. HRESULT Deactivate(
  442. void
  443. );
  444. HRESULT GetPageInfo(
  445. [out] PROPPAGEINFO * pPageInfo
  446. );
  447. HRESULT SetObjects(
  448. [in] ULONG cObjects,
  449. [in, size_is(cObjects)] IUnknown ** ppUnk
  450. );
  451. HRESULT Show(
  452. [in] UINT nCmdShow
  453. );
  454. HRESULT Move(
  455. [in] LPCRECT pRect
  456. );
  457. HRESULT IsPageDirty(
  458. void
  459. );
  460. HRESULT Apply(
  461. void
  462. );
  463. HRESULT Help(
  464. [in] LPCOLESTR pszHelpDir
  465. );
  466. HRESULT TranslateAccelerator(
  467. [in] MSG * pMsg
  468. );
  469. }
  470. [
  471. object,
  472. uuid(01E44665-24AC-101B-84ED-08002B2EC713),
  473. pointer_default(unique)
  474. ]
  475. interface IPropertyPage2 : IPropertyPage
  476. {
  477. typedef IPropertyPage2 * LPPROPERTYPAGE2;
  478. HRESULT EditProperty(
  479. [in] DISPID dispID
  480. );
  481. }
  482. [
  483. object,
  484. uuid(B196B28C-BAB4-101A-B69C-00AA00341D07),
  485. pointer_default(unique)
  486. ]
  487. interface IPropertyPageSite : IUnknown
  488. {
  489. typedef IPropertyPageSite * LPPROPERTYPAGESITE;
  490. typedef enum tagPROPPAGESTATUS {
  491. PROPPAGESTATUS_DIRTY = 0x01,
  492. PROPPAGESTATUS_VALIDATE = 0x02,
  493. PROPPAGESTATUS_CLEAN = 0x04
  494. } PROPPAGESTATUS;
  495. HRESULT OnStatusChange(
  496. [in] DWORD dwFlags
  497. );
  498. HRESULT GetLocaleID(
  499. [out] LCID * pLocaleID
  500. );
  501. HRESULT GetPageContainer(
  502. [out] IUnknown ** ppUnk
  503. );
  504. HRESULT TranslateAccelerator(
  505. [in] MSG * pMsg
  506. );
  507. }
  508. [
  509. object,
  510. uuid(9BFBBC02-EFF1-101A-84ED-00AA00341D07),
  511. pointer_default(unique)
  512. ]
  513. interface IPropertyNotifySink : IUnknown
  514. {
  515. typedef IPropertyNotifySink * LPPROPERTYNOTIFYSINK;
  516. HRESULT OnChanged(
  517. [in] DISPID dispID
  518. );
  519. HRESULT OnRequestEdit(
  520. [in] DISPID dispID
  521. );
  522. }
  523. [
  524. object,
  525. uuid(B196B28B-BAB4-101A-B69C-00AA00341D07),
  526. pointer_default(unique)
  527. ]
  528. interface ISpecifyPropertyPages : IUnknown
  529. {
  530. typedef ISpecifyPropertyPages * LPSPECIFYPROPERTYPAGES;
  531. typedef struct tagCAUUID {
  532. ULONG cElems;
  533. [size_is(cElems)] GUID * pElems;
  534. } CAUUID;
  535. typedef struct tagCAUUID * LPCAUUID;
  536. HRESULT GetPages(
  537. [out] CAUUID * pPages
  538. );
  539. }
  540. [
  541. object,
  542. uuid(BD1AE5E0-A6AE-11CE-BD37-504200C10000),
  543. pointer_default(unique)
  544. ]
  545. interface IPersistMemory : IPersist
  546. {
  547. typedef IPersistMemory * LPPERSISTMEMORY;
  548. HRESULT IsDirty(
  549. void
  550. );
  551. [local]
  552. HRESULT Load(
  553. [in, size_is(cbSize)] LPVOID pMem,
  554. [in] ULONG cbSize
  555. );
  556. [call_as(Load)]
  557. HRESULT RemoteLoad(
  558. [in, size_is(cbSize)] BYTE * pMem,
  559. [in] ULONG cbSize
  560. );
  561. [local]
  562. HRESULT Save(
  563. [out, size_is(cbSize)] LPVOID pMem,
  564. [in] BOOL fClearDirty,
  565. [in] ULONG cbSize
  566. );
  567. [call_as(Save)]
  568. HRESULT RemoteSave(
  569. [out, size_is(cbSize)] BYTE * pMem,
  570. [in] BOOL fClearDirty,
  571. [in] ULONG cbSize
  572. );
  573. HRESULT GetSizeMax(
  574. [out] ULONG * pCbSize
  575. );
  576. HRESULT InitNew(
  577. void
  578. );
  579. }
  580. [
  581. object,
  582. uuid(7FD52380-4E07-101B-AE2D-08002B2EC713),
  583. pointer_default(unique)
  584. ]
  585. interface IPersistStreamInit : IPersist
  586. {
  587. typedef IPersistStreamInit * LPPERSISTSTREAMINIT;
  588. HRESULT IsDirty(
  589. void
  590. );
  591. HRESULT Load(
  592. [in] LPSTREAM pStm
  593. );
  594. HRESULT Save(
  595. [in] LPSTREAM pStm,
  596. [in] BOOL fClearDirty
  597. );
  598. HRESULT GetSizeMax(
  599. [out] ULARGE_INTEGER * pCbSize
  600. );
  601. HRESULT InitNew(
  602. void
  603. );
  604. }
  605. [
  606. object,
  607. uuid(37D84F60-42CB-11CE-8135-00AA004BB851),
  608. pointer_default(unique)
  609. ]
  610. interface IPersistPropertyBag : IPersist
  611. {
  612. typedef IPersistPropertyBag * LPPERSISTPROPERTYBAG;
  613. HRESULT InitNew(
  614. void
  615. );
  616. HRESULT Load(
  617. [in] IPropertyBag * pPropBag,
  618. [in] IErrorLog * pErrorLog
  619. );
  620. HRESULT Save(
  621. [in] IPropertyBag * pPropBag,
  622. [in] BOOL fClearDirty,
  623. [in] BOOL fSaveAllProperties
  624. );
  625. }
  626. [
  627. object,
  628. uuid(742B0E01-14E6-101B-914E-00AA00300CAB),
  629. pointer_default(unique)
  630. ]
  631. interface ISimpleFrameSite : IUnknown
  632. {
  633. typedef ISimpleFrameSite * LPSIMPLEFRAMESITE;
  634. HRESULT PreMessageFilter(
  635. [in] HWND hWnd,
  636. [in] UINT msg,
  637. [in] WPARAM wp,
  638. [in] LPARAM lp,
  639. [out] LRESULT * plResult,
  640. [out] DWORD * pdwCookie
  641. );
  642. HRESULT PostMessageFilter(
  643. [in] HWND hWnd,
  644. [in] UINT msg,
  645. [in] WPARAM wp,
  646. [in] LPARAM lp,
  647. [out] LRESULT *plResult,
  648. [in] DWORD dwCookie
  649. );
  650. }
  651. [
  652. object,
  653. uuid(BEF6E002-A874-101A-8BBA-00AA00300CAB),
  654. pointer_default(unique)
  655. ]
  656. interface IFont : IUnknown
  657. {
  658. typedef IFont * LPFONT;
  659. cpp_quote("#if (defined(_WIN32) || defined (_WIN64)) && !defined(OLE2ANSI)")
  660. typedef TEXTMETRICW TEXTMETRICOLE;
  661. cpp_quote("#else")
  662. cpp_quote("typedef TEXTMETRIC TEXTMETRICOLE;")
  663. cpp_quote("#endif")
  664. typedef TEXTMETRICOLE * LPTEXTMETRICOLE;
  665. HRESULT get_Name(
  666. [out] BSTR * pName
  667. );
  668. HRESULT put_Name(
  669. [in] BSTR name
  670. );
  671. HRESULT get_Size(
  672. [out] CY * pSize
  673. );
  674. HRESULT put_Size(
  675. [in] CY size
  676. );
  677. HRESULT get_Bold(
  678. [out] BOOL * pBold
  679. );
  680. HRESULT put_Bold(
  681. [in] BOOL bold
  682. );
  683. HRESULT get_Italic(
  684. [out] BOOL * pItalic
  685. );
  686. HRESULT put_Italic(
  687. [in] BOOL italic
  688. );
  689. HRESULT get_Underline(
  690. [out] BOOL * pUnderline
  691. );
  692. HRESULT put_Underline(
  693. [in] BOOL underline
  694. );
  695. HRESULT get_Strikethrough(
  696. [out] BOOL * pStrikethrough
  697. );
  698. HRESULT put_Strikethrough(
  699. [in] BOOL strikethrough
  700. );
  701. HRESULT get_Weight(
  702. [out] SHORT * pWeight
  703. );
  704. HRESULT put_Weight(
  705. [in] SHORT weight
  706. );
  707. HRESULT get_Charset(
  708. [out] SHORT * pCharset
  709. );
  710. HRESULT put_Charset(
  711. [in] SHORT charset
  712. );
  713. HRESULT get_hFont(
  714. [out] HFONT * phFont
  715. );
  716. HRESULT Clone(
  717. [out] IFont ** ppFont
  718. );
  719. HRESULT IsEqual(
  720. [in] IFont * pFontOther
  721. );
  722. HRESULT SetRatio(
  723. [in] LONG cyLogical,
  724. [in] LONG cyHimetric
  725. );
  726. HRESULT QueryTextMetrics(
  727. [out] TEXTMETRICOLE * pTM
  728. );
  729. HRESULT AddRefHfont(
  730. [in] HFONT hFont
  731. );
  732. HRESULT ReleaseHfont(
  733. [in] HFONT hFont
  734. );
  735. HRESULT SetHdc(
  736. [in] HDC hDC
  737. );
  738. }
  739. [
  740. object,
  741. uuid(7BF80980-BF32-101A-8BBB-00AA00300CAB),
  742. pointer_default(unique)
  743. ]
  744. interface IPicture : IUnknown
  745. {
  746. typedef IPicture * LPPICTURE;
  747. typedef enum tagPictureAttributes {
  748. PICTURE_SCALABLE = 0x1,
  749. PICTURE_TRANSPARENT = 0x2
  750. } PICTUREATTRIBUTES;
  751. typedef [uuid(66504313-BE0F-101A-8BBB-00AA00300CAB), public] UINT OLE_HANDLE;
  752. typedef [uuid(66504306-BE0F-101A-8BBB-00AA00300CAB), hidden] LONG OLE_XPOS_HIMETRIC;
  753. typedef [uuid(66504307-BE0F-101A-8BBB-00AA00300CAB), hidden] LONG OLE_YPOS_HIMETRIC;
  754. typedef [uuid(66504308-BE0F-101A-8BBB-00AA00300CAB), hidden] LONG OLE_XSIZE_HIMETRIC;
  755. typedef [uuid(66504309-BE0F-101A-8BBB-00AA00300CAB), hidden] LONG OLE_YSIZE_HIMETRIC;
  756. HRESULT get_Handle(
  757. [out] OLE_HANDLE * pHandle
  758. );
  759. HRESULT get_hPal(
  760. [out] OLE_HANDLE * phPal
  761. );
  762. HRESULT get_Type(
  763. [out] SHORT * pType
  764. );
  765. HRESULT get_Width(
  766. [out] OLE_XSIZE_HIMETRIC * pWidth
  767. );
  768. HRESULT get_Height(
  769. [out] OLE_YSIZE_HIMETRIC * pHeight
  770. );
  771. HRESULT Render(
  772. [in] HDC hDC,
  773. [in] LONG x,
  774. [in] LONG y,
  775. [in] LONG cx,
  776. [in] LONG cy,
  777. [in] OLE_XPOS_HIMETRIC xSrc,
  778. [in] OLE_YPOS_HIMETRIC ySrc,
  779. [in] OLE_XSIZE_HIMETRIC cxSrc,
  780. [in] OLE_YSIZE_HIMETRIC cySrc,
  781. [in] LPCRECT pRcWBounds
  782. );
  783. HRESULT set_hPal(
  784. [in] OLE_HANDLE hPal
  785. );
  786. HRESULT get_CurDC(
  787. [out] HDC * phDC
  788. );
  789. HRESULT SelectPicture(
  790. [in] HDC hDCIn,
  791. [out] HDC * phDCOut,
  792. [out] OLE_HANDLE * phBmpOut
  793. );
  794. HRESULT get_KeepOriginalFormat(
  795. [out] BOOL * pKeep
  796. );
  797. HRESULT put_KeepOriginalFormat(
  798. [in] BOOL keep
  799. );
  800. HRESULT PictureChanged(
  801. void
  802. );
  803. HRESULT SaveAsFile(
  804. [in] LPSTREAM pStream,
  805. [in] BOOL fSaveMemCopy,
  806. [out] LONG * pCbSize
  807. );
  808. HRESULT get_Attributes(
  809. [out] DWORD * pDwAttr
  810. );
  811. }
  812. [
  813. object,
  814. uuid(4EF6100A-AF88-11D0-9846-00C04FC29993),
  815. pointer_default(unique)
  816. ]
  817. interface IFontEventsDisp : IDispatch
  818. {
  819. typedef IFontEventsDisp * LPFONTEVENTS;
  820. }
  821. [
  822. object,
  823. uuid(BEF6E003-A874-101A-8BBA-00AA00300CAB),
  824. pointer_default(unique)
  825. ]
  826. interface IFontDisp : IDispatch
  827. {
  828. typedef IFontDisp * LPFONTDISP;
  829. }
  830. [
  831. object,
  832. uuid(7BF80981-BF32-101A-8BBB-00AA00300CAB),
  833. pointer_default(unique)
  834. ]
  835. interface IPictureDisp : IDispatch
  836. {
  837. typedef IPictureDisp * LPPICTUREDISP;
  838. }
  839. //+---------------------------------------------------------------------------
  840. //
  841. // Extensions to OLE and OLE Controls.
  842. //
  843. //----------------------------------------------------------------------------
  844. [
  845. local,
  846. object,
  847. pointer_default(unique),
  848. uuid(1C2056CC-5EF4-101B-8BC8-00AA003E3B29)
  849. ]
  850. interface IOleInPlaceObjectWindowless : IOleInPlaceObject
  851. {
  852. typedef IOleInPlaceObjectWindowless *LPOLEINPLACEOBJECTWINDOWLESS;
  853. HRESULT OnWindowMessage(
  854. [in] UINT msg,
  855. [in] WPARAM wParam,
  856. [in] LPARAM lParam,
  857. [out] LRESULT * plResult
  858. );
  859. HRESULT GetDropTarget(
  860. [out] IDropTarget ** ppDropTarget
  861. );
  862. }
  863. [
  864. object,
  865. pointer_default(unique),
  866. uuid(9C2CAD80-3424-11CF-B670-00AA004CD6D8)
  867. ]
  868. interface IOleInPlaceSiteEx : IOleInPlaceSite
  869. {
  870. typedef IOleInPlaceSiteEx * LPOLEINPLACESITEEX;
  871. typedef [v1_enum] enum tagACTIVATEFLAGS {
  872. ACTIVATE_WINDOWLESS = 1,
  873. } ACTIVATEFLAGS;
  874. HRESULT OnInPlaceActivateEx(
  875. [out] BOOL * pfNoRedraw,
  876. [in] DWORD dwFlags
  877. );
  878. HRESULT OnInPlaceDeactivateEx(
  879. [in] BOOL fNoRedraw
  880. );
  881. HRESULT RequestUIActivate(
  882. void
  883. );
  884. }
  885. [
  886. local,
  887. object,
  888. pointer_default(unique),
  889. uuid(922EADA0-3424-11CF-B670-00AA004CD6D8)
  890. ]
  891. interface IOleInPlaceSiteWindowless : IOleInPlaceSiteEx
  892. {
  893. typedef IOleInPlaceSiteWindowless * LPOLEINPLACESITEWINDOWLESS;
  894. typedef [v1_enum] enum tagOLEDCFLAGS {
  895. OLEDC_NODRAW = 0x01,
  896. OLEDC_PAINTBKGND = 0x02,
  897. OLEDC_OFFSCREEN = 0x04
  898. } OLEDCFLAGS;
  899. HRESULT CanWindowlessActivate(
  900. void
  901. );
  902. HRESULT GetCapture(
  903. void
  904. );
  905. HRESULT SetCapture(
  906. [in] BOOL fCapture
  907. );
  908. HRESULT GetFocus(
  909. void
  910. );
  911. HRESULT SetFocus(
  912. [in] BOOL fFocus
  913. );
  914. HRESULT GetDC(
  915. [in] LPCRECT pRect,
  916. [in] DWORD grfFlags,
  917. [out] HDC * phDC
  918. );
  919. HRESULT ReleaseDC(
  920. [in] HDC hDC
  921. );
  922. HRESULT InvalidateRect(
  923. [in] LPCRECT pRect,
  924. [in] BOOL fErase
  925. );
  926. HRESULT InvalidateRgn(
  927. [in] HRGN hRGN,
  928. [in] BOOL fErase
  929. );
  930. HRESULT ScrollRect(
  931. [in] INT dx,
  932. [in] INT dy,
  933. [in] LPCRECT pRectScroll,
  934. [in] LPCRECT pRectClip
  935. );
  936. HRESULT AdjustRect(
  937. [in, out] LPRECT prc
  938. );
  939. HRESULT OnDefWindowMessage(
  940. [in] UINT msg,
  941. [in] WPARAM wParam,
  942. [in] LPARAM lParam,
  943. [out] LRESULT * plResult
  944. );
  945. }
  946. [
  947. local,
  948. object,
  949. pointer_default(unique),
  950. uuid(3AF24292-0C96-11CE-A0CF-00AA00600AB8)
  951. ]
  952. interface IViewObjectEx : IViewObject2
  953. {
  954. typedef IViewObjectEx * LPVIEWOBJECTEX;
  955. typedef [v1_enum] enum tagVIEWSTATUS {
  956. VIEWSTATUS_OPAQUE = 1,
  957. VIEWSTATUS_SOLIDBKGND = 2,
  958. VIEWSTATUS_DVASPECTOPAQUE = 4,
  959. VIEWSTATUS_DVASPECTTRANSPARENT = 8,
  960. VIEWSTATUS_SURFACE = 16,
  961. VIEWSTATUS_3DSURFACE = 32
  962. } VIEWSTATUS;
  963. typedef [v1_enum] enum tagHITRESULT {
  964. HITRESULT_OUTSIDE = 0,
  965. HITRESULT_TRANSPARENT = 1,
  966. HITRESULT_CLOSE = 2,
  967. HITRESULT_HIT = 3
  968. } HITRESULT;
  969. typedef [v1_enum] enum tagDVASPECT2 {
  970. DVASPECT_OPAQUE = 16,
  971. DVASPECT_TRANSPARENT = 32,
  972. } DVASPECT2;
  973. typedef struct tagExtentInfo {
  974. ULONG cb;
  975. DWORD dwExtentMode;
  976. SIZEL sizelProposed;
  977. } DVEXTENTINFO;
  978. typedef [v1_enum] enum tagExtentMode {
  979. DVEXTENT_CONTENT,
  980. DVEXTENT_INTEGRAL
  981. } DVEXTENTMODE;
  982. typedef [v1_enum] enum tagAspectInfoFlag {
  983. DVASPECTINFOFLAG_CANOPTIMIZE = 1
  984. } DVASPECTINFOFLAG;
  985. typedef struct tagAspectInfo {
  986. ULONG cb;
  987. DWORD dwFlags;
  988. } DVASPECTINFO;
  989. HRESULT GetRect(
  990. [in] DWORD dwAspect,
  991. [out] LPRECTL pRect
  992. );
  993. HRESULT GetViewStatus(
  994. [out] DWORD * pdwStatus
  995. );
  996. HRESULT QueryHitPoint(
  997. [in] DWORD dwAspect,
  998. [in] LPCRECT pRectBounds,
  999. [in] POINT ptlLoc,
  1000. [in] LONG lCloseHint,
  1001. [out] DWORD * pHitResult
  1002. );
  1003. HRESULT QueryHitRect(
  1004. [in] DWORD dwAspect,
  1005. [in] LPCRECT pRectBounds,
  1006. [in] LPCRECT pRectLoc,
  1007. [in] LONG lCloseHint,
  1008. [out] DWORD * pHitResult
  1009. );
  1010. HRESULT GetNaturalExtent (
  1011. [in] DWORD dwAspect,
  1012. [in] LONG lindex,
  1013. [in] DVTARGETDEVICE * ptd,
  1014. [in] HDC hicTargetDev,
  1015. [in] DVEXTENTINFO * pExtentInfo,
  1016. [out] LPSIZEL pSizel
  1017. );
  1018. }
  1019. [
  1020. object,
  1021. pointer_default(unique),
  1022. uuid(894AD3B0-EF97-11CE-9BC9-00AA00608E01)
  1023. ]
  1024. interface IOleUndoUnit : IUnknown
  1025. {
  1026. typedef IOleUndoUnit * LPOLEUNDOUNIT;
  1027. HRESULT Do(
  1028. [in] IOleUndoManager * pUndoManager
  1029. );
  1030. HRESULT GetDescription(
  1031. [out] BSTR * pBstr
  1032. );
  1033. HRESULT GetUnitType(
  1034. [out] CLSID * pClsid,
  1035. [out] LONG * plID
  1036. );
  1037. HRESULT OnNextAdd(
  1038. void
  1039. );
  1040. }
  1041. [
  1042. object,
  1043. pointer_default(unique),
  1044. uuid(A1FAF330-EF97-11CE-9BC9-00AA00608E01)
  1045. ]
  1046. interface IOleParentUndoUnit : IOleUndoUnit
  1047. {
  1048. typedef IOleParentUndoUnit * LPOLEPARENTUNDOUNIT;
  1049. HRESULT Open(
  1050. [in] IOleParentUndoUnit * pPUU
  1051. );
  1052. HRESULT Close(
  1053. [in] IOleParentUndoUnit * pPUU,
  1054. [in] BOOL fCommit
  1055. );
  1056. HRESULT Add(
  1057. [in] IOleUndoUnit * pUU
  1058. );
  1059. HRESULT FindUnit(
  1060. [in] IOleUndoUnit * pUU
  1061. );
  1062. HRESULT GetParentState(
  1063. [out] DWORD * pdwState
  1064. );
  1065. }
  1066. [
  1067. object,
  1068. pointer_default(unique),
  1069. uuid(B3E7C340-EF97-11CE-9BC9-00AA00608E01)
  1070. ]
  1071. interface IEnumOleUndoUnits : IUnknown
  1072. {
  1073. typedef IEnumOleUndoUnits * LPENUMOLEUNDOUNITS;
  1074. [local]
  1075. HRESULT Next(
  1076. [in] ULONG cElt,
  1077. [out, size_is(cElt), length_is(*pcEltFetched)]
  1078. IOleUndoUnit ** rgElt,
  1079. [out] ULONG * pcEltFetched
  1080. );
  1081. [call_as(Next)]
  1082. HRESULT RemoteNext(
  1083. [in] ULONG cElt,
  1084. [out, size_is(cElt), length_is(*pcEltFetched)]
  1085. IOleUndoUnit ** rgElt,
  1086. [out] ULONG * pcEltFetched
  1087. );
  1088. HRESULT Skip(
  1089. [in] ULONG cElt
  1090. );
  1091. HRESULT Reset(
  1092. void
  1093. );
  1094. HRESULT Clone(
  1095. [out] IEnumOleUndoUnits ** ppEnum
  1096. );
  1097. }
  1098. [
  1099. object,
  1100. pointer_default(unique),
  1101. uuid(D001F200-EF97-11CE-9BC9-00AA00608E01)
  1102. ]
  1103. interface IOleUndoManager : IUnknown
  1104. {
  1105. cpp_quote("#define SID_SOleUndoManager IID_IOleUndoManager")
  1106. typedef IOleUndoManager * LPOLEUNDOMANAGER;
  1107. HRESULT Open(
  1108. [in] IOleParentUndoUnit * pPUU
  1109. );
  1110. HRESULT Close(
  1111. [in] IOleParentUndoUnit * pPUU,
  1112. [in] BOOL fCommit
  1113. );
  1114. HRESULT Add(
  1115. [in] IOleUndoUnit * pUU
  1116. );
  1117. HRESULT GetOpenParentState(
  1118. [out] DWORD * pdwState
  1119. );
  1120. HRESULT DiscardFrom(
  1121. [in] IOleUndoUnit * pUU
  1122. );
  1123. HRESULT UndoTo(
  1124. [in] IOleUndoUnit * pUU
  1125. );
  1126. HRESULT RedoTo(
  1127. [in] IOleUndoUnit * pUU
  1128. );
  1129. HRESULT EnumUndoable(
  1130. [out] IEnumOleUndoUnits ** ppEnum
  1131. );
  1132. HRESULT EnumRedoable(
  1133. [out] IEnumOleUndoUnits ** ppEnum
  1134. );
  1135. HRESULT GetLastUndoDescription(
  1136. [out] BSTR * pBstr
  1137. );
  1138. HRESULT GetLastRedoDescription(
  1139. [out] BSTR * pBstr
  1140. );
  1141. HRESULT Enable(
  1142. [in] BOOL fEnable
  1143. );
  1144. }
  1145. [
  1146. object,
  1147. pointer_default(unique),
  1148. uuid(55980BA0-35AA-11CF-B671-00AA004CD6D8)
  1149. ]
  1150. interface IPointerInactive : IUnknown
  1151. {
  1152. typedef IPointerInactive * LPPOINTERINACTIVE;
  1153. typedef [v1_enum] enum tagPOINTERINACTIVE {
  1154. POINTERINACTIVE_ACTIVATEONENTRY = 1,
  1155. POINTERINACTIVE_DEACTIVATEONLEAVE = 2,
  1156. POINTERINACTIVE_ACTIVATEONDRAG = 4
  1157. } POINTERINACTIVE;
  1158. HRESULT GetActivationPolicy(
  1159. [out] DWORD * pdwPolicy
  1160. );
  1161. HRESULT OnInactiveMouseMove(
  1162. [in] LPCRECT pRectBounds,
  1163. [in] LONG x,
  1164. [in] LONG y,
  1165. [in] DWORD grfKeyState
  1166. );
  1167. HRESULT OnInactiveSetCursor(
  1168. [in] LPCRECT pRectBounds,
  1169. [in] LONG x,
  1170. [in] LONG y,
  1171. [in] DWORD dwMouseMsg,
  1172. [in] BOOL fSetAlways
  1173. );
  1174. }
  1175. [
  1176. object,
  1177. uuid(FC4801A3-2BA9-11CF-A229-00AA003D7352),
  1178. pointer_default(unique)
  1179. ]
  1180. interface IObjectWithSite : IUnknown
  1181. {
  1182. typedef IObjectWithSite * LPOBJECTWITHSITE;
  1183. HRESULT SetSite(
  1184. [in] IUnknown * pUnkSite
  1185. );
  1186. HRESULT GetSite(
  1187. [in] REFIID riid,
  1188. [out, iid_is(riid)] void ** ppvSite
  1189. );
  1190. }
  1191. #endif // #if !defined(_DCOM_OA_REMOTING_) && !defined(_DCOM_OC_REMOTING_)
  1192. #if !defined(_DCOM_OC_REMOTING_)
  1193. [
  1194. object,
  1195. uuid(376BD3AA-3845-101B-84ED-08002B2EC713),
  1196. pointer_default(unique)
  1197. ]
  1198. interface IPerPropertyBrowsing : IUnknown
  1199. {
  1200. typedef IPerPropertyBrowsing * LPPERPROPERTYBROWSING;
  1201. typedef struct tagCALPOLESTR {
  1202. ULONG cElems;
  1203. [size_is(cElems)] LPOLESTR * pElems;
  1204. } CALPOLESTR;
  1205. typedef struct tagCALPOLESTR * LPCALPOLESTR;
  1206. typedef struct tagCADWORD {
  1207. ULONG cElems;
  1208. [size_is(cElems)] DWORD * pElems;
  1209. } CADWORD;
  1210. typedef struct tagCADWORD * LPCADWORD;
  1211. HRESULT GetDisplayString(
  1212. [in] DISPID dispID,
  1213. [out] BSTR * pBstr
  1214. );
  1215. HRESULT MapPropertyToPage(
  1216. [in] DISPID dispID,
  1217. [out] CLSID * pClsid
  1218. );
  1219. HRESULT GetPredefinedStrings(
  1220. [in] DISPID dispID,
  1221. [out] CALPOLESTR * pCaStringsOut,
  1222. [out] CADWORD * pCaCookiesOut
  1223. );
  1224. HRESULT GetPredefinedValue(
  1225. [in] DISPID dispID,
  1226. [in] DWORD dwCookie,
  1227. [out] VARIANT * pVarOut
  1228. );
  1229. }
  1230. #endif // #if !defined(_DCOM_OC_REMOTING_)
  1231. #if !defined(_NON_DCOM_REMOTING_) && !defined(_DCOM_OC_REMOTING_)
  1232. [
  1233. object,
  1234. uuid(22F55882-280B-11d0-A8A9-00A0C90C2004),
  1235. pointer_default(unique)
  1236. ]
  1237. interface IPropertyBag2 : IUnknown
  1238. {
  1239. typedef IPropertyBag2 * LPPROPERTYBAG2;
  1240. typedef [v1_enum] enum tagPROPBAG2_TYPE {
  1241. PROPBAG2_TYPE_UNDEFINED = 0,
  1242. PROPBAG2_TYPE_DATA = 1, // Value is simple data
  1243. PROPBAG2_TYPE_URL = 2, // Value is a URL reference
  1244. PROPBAG2_TYPE_OBJECT = 3, // Value is an object
  1245. PROPBAG2_TYPE_STREAM = 4, // Value is a stream
  1246. PROPBAG2_TYPE_STORAGE = 5, // Value is a storage
  1247. PROPBAG2_TYPE_MONIKER = 6 // Value is a moniker
  1248. } PROPBAG2_TYPE;
  1249. typedef struct tagPROPBAG2 {
  1250. DWORD dwType; // Property type (from PROPBAG2_TYPE)
  1251. VARTYPE vt; // VARIANT property type
  1252. CLIPFORMAT cfType; // Clipboard format (aka MIME-type)
  1253. DWORD dwHint; // Property name hint
  1254. LPOLESTR pstrName; // Property name
  1255. CLSID clsid; // CLSID (for PROPBAG2_TYPE_OBJECT)
  1256. } PROPBAG2;
  1257. HRESULT Read(
  1258. [in] ULONG cProperties,
  1259. [in] PROPBAG2 * pPropBag,
  1260. [in] IErrorLog * pErrLog,
  1261. [out] VARIANT * pvarValue,
  1262. [out] HRESULT * phrError
  1263. );
  1264. HRESULT Write(
  1265. [in] ULONG cProperties,
  1266. [in] PROPBAG2 * pPropBag,
  1267. [in] VARIANT * pvarValue
  1268. );
  1269. HRESULT CountProperties(
  1270. [out] ULONG * pcProperties
  1271. );
  1272. HRESULT GetPropertyInfo(
  1273. [in] ULONG iProperty,
  1274. [in] ULONG cProperties,
  1275. [out] PROPBAG2 * pPropBag,
  1276. [out] ULONG * pcProperties
  1277. );
  1278. HRESULT LoadObject(
  1279. [in] LPCOLESTR pstrName,
  1280. [in] DWORD dwHint,
  1281. [in] IUnknown * pUnkObject,
  1282. [in] IErrorLog * pErrLog
  1283. );
  1284. }
  1285. [
  1286. object,
  1287. uuid(22F55881-280B-11d0-A8A9-00A0C90C2004),
  1288. pointer_default(unique)
  1289. ]
  1290. interface IPersistPropertyBag2 : IPersist
  1291. {
  1292. typedef IPersistPropertyBag2 * LPPERSISTPROPERTYBAG2;
  1293. HRESULT InitNew(
  1294. void
  1295. );
  1296. HRESULT Load(
  1297. [in] IPropertyBag2 * pPropBag,
  1298. [in] IErrorLog * pErrLog
  1299. );
  1300. HRESULT Save(
  1301. [in] IPropertyBag2 * pPropBag,
  1302. [in] BOOL fClearDirty,
  1303. [in] BOOL fSaveAllProperties
  1304. );
  1305. HRESULT IsDirty(
  1306. void
  1307. );
  1308. }
  1309. #endif // #if !defined(_NON_DCOM_REMOTING_) && !defined(_DCOM_OC_REMOTING_)
  1310. #if !defined(_NON_DCOM_REMOTING_) && !defined(_DCOM_OA_REMOTING_)
  1311. #if !defined(_DCOM_OC_REMOTING_)
  1312. [
  1313. object,
  1314. pointer_default(unique),
  1315. uuid(3AF24290-0C96-11CE-A0CF-00AA00600AB8)
  1316. ]
  1317. interface IAdviseSinkEx : IAdviseSink
  1318. {
  1319. typedef IAdviseSinkEx * LPADVISESINKEX;
  1320. [local]
  1321. void OnViewStatusChange(
  1322. [in] DWORD dwViewStatus
  1323. );
  1324. [call_as(OnViewStatusChange)]
  1325. HRESULT RemoteOnViewStatusChange(
  1326. [in] DWORD dwViewStatus
  1327. );
  1328. }
  1329. #endif // #if !defined(_DCOM_OC_REMOTING_)
  1330. [
  1331. object,
  1332. pointer_default(unique),
  1333. uuid(CF51ED10-62FE-11CF-BF86-00A0C9034836)
  1334. ]
  1335. interface IQuickActivate : IUnknown
  1336. {
  1337. typedef IQuickActivate * LPQUICKACTIVATE;
  1338. typedef [v1_enum] enum tagQACONTAINERFLAGS {
  1339. QACONTAINER_SHOWHATCHING = 0x0001,
  1340. QACONTAINER_SHOWGRABHANDLES = 0x0002,
  1341. QACONTAINER_USERMODE = 0x0004,
  1342. QACONTAINER_DISPLAYASDEFAULT = 0x0008,
  1343. QACONTAINER_UIDEAD = 0x0010,
  1344. QACONTAINER_AUTOCLIP = 0x0020,
  1345. QACONTAINER_MESSAGEREFLECT = 0x0040,
  1346. QACONTAINER_SUPPORTSMNEMONICS = 0x0080
  1347. } QACONTAINERFLAGS;
  1348. typedef [uuid(66504301-BE0F-101A-8BBB-00AA00300CAB), public] DWORD OLE_COLOR;
  1349. typedef struct tagQACONTAINER {
  1350. ULONG cbSize;
  1351. IOleClientSite * pClientSite;
  1352. IAdviseSinkEx * pAdviseSink;
  1353. IPropertyNotifySink * pPropertyNotifySink;
  1354. IUnknown * pUnkEventSink;
  1355. DWORD dwAmbientFlags;
  1356. OLE_COLOR colorFore;
  1357. OLE_COLOR colorBack;
  1358. IFont * pFont;
  1359. IOleUndoManager * pUndoMgr;
  1360. DWORD dwAppearance;
  1361. LONG lcid;
  1362. HPALETTE hpal;
  1363. IBindHost * pBindHost;
  1364. IOleControlSite * pOleControlSite;
  1365. IServiceProvider * pServiceProvider;
  1366. } QACONTAINER;
  1367. typedef struct tagQACONTROL {
  1368. ULONG cbSize;
  1369. DWORD dwMiscStatus;
  1370. DWORD dwViewStatus;
  1371. DWORD dwEventCookie;
  1372. DWORD dwPropNotifyCookie;
  1373. DWORD dwPointerActivationPolicy;
  1374. } QACONTROL;
  1375. [local]
  1376. HRESULT QuickActivate(
  1377. [in] QACONTAINER * pQaContainer,
  1378. [in,out] QACONTROL * pQaControl
  1379. );
  1380. [call_as(QuickActivate)]
  1381. HRESULT RemoteQuickActivate(
  1382. [in] QACONTAINER * pQaContainer,
  1383. [out] QACONTROL * pQaControl
  1384. );
  1385. HRESULT SetContentExtent(
  1386. [in] LPSIZEL pSizel
  1387. );
  1388. HRESULT GetContentExtent(
  1389. [out] LPSIZEL pSizel
  1390. );
  1391. }
  1392. #endif // #if !defined(_NON_DCOM_REMOTING_) && !defined(_DCOM_OA_REMOTING_)