Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenobjidl.idl
Go to the documentation of this file.
00001 /* 00002 * Copyright 2002 Ove Kaaven 00003 * 00004 * This library is free software; you can redistribute it and/or 00005 * modify it under the terms of the GNU Lesser General Public 00006 * License as published by the Free Software Foundation; either 00007 * version 2.1 of the License, or (at your option) any later version. 00008 * 00009 * This library is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 * Lesser General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU Lesser General Public 00015 * License along with this library; if not, write to the Free Software 00016 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 00017 */ 00018 00019 #ifndef DO_NO_IMPORTS 00020 import "unknwn.idl"; 00021 #endif 00022 00023 interface IStream; 00024 interface IEnumString; 00025 interface IRunningObjectTable; 00026 interface IMoniker; 00027 interface IAdviseSink; 00028 interface IAsyncManager; 00029 interface ISynchronize; 00030 00031 typedef struct _COSERVERINFO { 00032 DWORD dwReserved1; 00033 LPWSTR pwszName; 00034 COAUTHINFO *pAuthInfo; 00035 DWORD dwReserved2; 00036 } COSERVERINFO; 00037 00038 /******************** Fundamentals ********************/ 00039 00040 [ 00041 local, 00042 object, 00043 uuid(00000003-0000-0000-C000-000000000046) 00044 ] 00045 interface IMarshal : IUnknown 00046 { 00047 typedef [unique] IMarshal *LPMARSHAL; 00048 00049 HRESULT GetUnmarshalClass( 00050 [in] REFIID riid, 00051 [in, unique] void *pv, 00052 [in] DWORD dwDestContext, 00053 [in, unique] void *pvDestContext, 00054 [in] DWORD mshlflags, 00055 [out] CLSID *pCid); 00056 00057 HRESULT GetMarshalSizeMax( 00058 [in] REFIID riid, 00059 [in, unique] void *pv, 00060 [in] DWORD dwDestContext, 00061 [in, unique] void *pvDestContext, 00062 [in] DWORD mshlflags, 00063 [out] DWORD *pSize); 00064 00065 HRESULT MarshalInterface( 00066 [in, unique] IStream *pStm, 00067 [in] REFIID riid, 00068 [in, unique] void *pv, 00069 [in] DWORD dwDestContext, 00070 [in, unique] void *pvDestContext, 00071 [in] DWORD mshlflags); 00072 00073 HRESULT UnmarshalInterface( 00074 [in, unique] IStream *pStm, 00075 [in] REFIID riid, 00076 [out] void **ppv); 00077 00078 HRESULT ReleaseMarshalData( 00079 [in, unique] IStream *pStm); 00080 00081 HRESULT DisconnectObject( 00082 [in] DWORD dwReserved); 00083 } 00084 00085 [ 00086 local, 00087 object, 00088 uuid(000001cf-0000-0000-C000-000000000046) 00089 ] 00090 interface IMarshal2 : IMarshal 00091 { 00092 typedef [unique] IMarshal2 *LPMARSHAL2; 00093 } 00094 00095 [ 00096 local, 00097 object, 00098 uuid(00000018-0000-0000-C000-000000000046) 00099 ] 00100 interface IStdMarshalInfo : IUnknown 00101 { 00102 typedef [unique] IStdMarshalInfo *LPSTDMARSHALINFO; 00103 00104 HRESULT GetClassForHandler( 00105 [in] DWORD dwDestContext, 00106 [in, unique] void *pvDestContext, 00107 [out] CLSID *pClsid); 00108 } 00109 00110 [ 00111 local, 00112 object, 00113 uuid(00000019-0000-0000-C000-000000000046) 00114 ] 00115 interface IExternalConnection : IUnknown 00116 { 00117 typedef [unique] IExternalConnection *LPEXTERNALCONNECTION; 00118 00119 typedef enum tagEXTCONN { 00120 EXTCONN_STRONG = 0x0001, 00121 EXTCONN_WEAK = 0x0002, 00122 EXTCONN_CALLABLE = 0x0004 00123 } EXTCONN; 00124 00125 DWORD AddConnection( 00126 [in] DWORD extconn, 00127 [in] DWORD reserved); 00128 00129 DWORD ReleaseConnection( 00130 [in] DWORD extconn, 00131 [in] DWORD reserved, 00132 [in] BOOL fLastReleaseCloses); 00133 } 00134 00135 [ 00136 local, 00137 object, 00138 uuid(00000020-0000-0000-C000-000000000046) 00139 ] 00140 interface IMultiQI : IUnknown 00141 { 00142 typedef [unique] IMultiQI *LPMULTIQI; 00143 00144 typedef struct tagMULTI_QI { 00145 const IID *pIID; 00146 IUnknown *pItf; 00147 HRESULT hr; 00148 } MULTI_QI; 00149 00150 HRESULT QueryMultipleInterfaces( 00151 [in] ULONG cMQIs, 00152 [in, out] MULTI_QI *pMQIs); 00153 } 00154 00155 [ 00156 local, 00157 object, 00158 uuid(00000002-0000-0000-C000-000000000046) 00159 ] 00160 interface IMalloc : IUnknown 00161 { 00162 typedef [unique] IMalloc *LPMALLOC; 00163 00164 LPVOID Alloc( 00165 [in] ULONG cb); 00166 00167 LPVOID Realloc( 00168 [in] LPVOID pv, 00169 [in] ULONG cb); 00170 00171 void Free( 00172 [in] LPVOID pv); 00173 00174 ULONG GetSize( 00175 [in] LPVOID pv); 00176 00177 int DidAlloc(LPVOID pv); 00178 00179 void HeapMinimize(); 00180 } 00181 00182 [ 00183 local, 00184 object, 00185 uuid(0000001d-0000-0000-C000-000000000046) 00186 ] 00187 interface IMallocSpy : IUnknown 00188 { 00189 typedef [unique] IMallocSpy *LPMALLOCSPY; 00190 00191 ULONG PreAlloc( 00192 [in] ULONG cbRequest); 00193 00194 LPVOID PostAlloc( 00195 [in] LPVOID pActual); 00196 00197 LPVOID PreFree( 00198 [in] LPVOID pRequest, 00199 [in] BOOL fSpyed); 00200 00201 void PostFree( 00202 [in] BOOL fSpyed); 00203 00204 ULONG PreRealloc( 00205 [in] LPVOID pRequest, 00206 [in] ULONG cbRequest, 00207 [out] LPVOID *ppNewRequest, 00208 [in] BOOL fSpyed); 00209 00210 LPVOID PostRealloc( 00211 [in] LPVOID pActual, 00212 [in] BOOL fSpyed); 00213 00214 LPVOID PreGetSize( 00215 [in] LPVOID pRequest, 00216 [in] BOOL fSpyed); 00217 00218 ULONG PostGetSize( 00219 [in] ULONG cbActual, 00220 [in] BOOL fSpyed); 00221 00222 LPVOID PreDidAlloc( 00223 [in] LPVOID pRequest, 00224 [in] BOOL fSpyed); 00225 00226 int PostDidAlloc( 00227 [in] LPVOID pRequest, 00228 [in] BOOL fSpyed, 00229 [in] int fActual); 00230 00231 void PreHeapMinimize(); 00232 00233 void PostHeapMinimize(); 00234 } 00235 00236 [ 00237 local, 00238 object, 00239 uuid(00000021-0000-0000-C000-000000000046) 00240 ] 00241 interface IInternalUnknown : IUnknown 00242 { 00243 HRESULT QueryInternalInterface( 00244 [in] REFIID riid, 00245 [out] void **ppv); 00246 } 00247 00248 [ 00249 object, 00250 uuid(00000100-0000-0000-C000-000000000046), 00251 pointer_default(unique) 00252 ] 00253 interface IEnumUnknown : IUnknown 00254 { 00255 typedef [unique] IEnumUnknown *LPENUMUNKNOWN; 00256 00257 [local] 00258 HRESULT Next( 00259 [in] ULONG celt, 00260 [out] IUnknown **rgelt, 00261 [out] ULONG *pceltFetched); 00262 00263 [call_as(Next)] 00264 HRESULT RemoteNext( 00265 [in] ULONG celt, 00266 [out, size_is(celt), length_is(*pceltFetched)] 00267 IUnknown **rgelt, 00268 [out] ULONG *pceltFetched); 00269 00270 HRESULT Skip( 00271 [in] ULONG celt); 00272 00273 HRESULT Reset(); 00274 00275 HRESULT Clone( 00276 [out] IEnumUnknown **ppenum); 00277 } 00278 00279 [ 00280 object, 00281 uuid(00000022-0000-0000-C000-000000000046), 00282 version(1.0), 00283 pointer_default(unique) 00284 ] 00285 interface ISurrogate : IUnknown 00286 { 00287 typedef [unique] ISurrogate *LPSURROGATE; 00288 00289 HRESULT LoadDllServer( 00290 [in] REFCLSID Clsid); 00291 HRESULT FreeSurrogate(); 00292 } 00293 00294 [ 00295 local, 00296 object, 00297 uuid(00000146-0000-0000-C000-000000000046) 00298 ] 00299 interface IGlobalInterfaceTable : IUnknown 00300 { 00301 typedef [unique] IGlobalInterfaceTable *LPGLOBALINTERFACETABLE; 00302 00303 HRESULT RegisterInterfaceInGlobal( 00304 [in] IUnknown *pUnk, 00305 [in] REFIID riid, 00306 [out] DWORD *pdwCookie); 00307 00308 HRESULT RevokeInterfaceFromGlobal( 00309 [in] DWORD dwCookie); 00310 00311 HRESULT GetInterfaceFromGlobal( 00312 [in] DWORD dwCookie, 00313 [in] REFIID riid, 00314 [out, iid_is(riid)] void **ppv); 00315 } 00316 00317 /******************** Monikers ********************/ 00318 00319 [ 00320 object, 00321 uuid(0000000e-0000-0000-C000-000000000046), 00322 pointer_default(unique) 00323 ] 00324 interface IBindCtx : IUnknown 00325 { 00326 typedef [unique] IBindCtx *LPBINDCTX; 00327 typedef [unique] IBindCtx *LPBC; 00328 00329 typedef struct tagBIND_OPTS { 00330 DWORD cbStruct; 00331 DWORD grfFlags; 00332 DWORD grfMode; 00333 DWORD dwTickCountDeadline; 00334 } BIND_OPTS, *LPBIND_OPTS; 00335 00336 /* FIXME: C++ crap */ 00337 typedef struct tagBIND_OPTS2 { 00338 DWORD cbStruct; 00339 DWORD grfFlags; 00340 DWORD grfMode; 00341 DWORD dwTickCountDeadline; 00342 DWORD dwTrackFlags; 00343 DWORD dwClassContext; 00344 LCID locale; 00345 COSERVERINFO *pServerInfo; 00346 } BIND_OPTS2, *LPBIND_OPTS2; 00347 00348 typedef struct tagBIND_OPTS3 { 00349 DWORD cbStruct; 00350 DWORD grfFlags; 00351 DWORD grfMode; 00352 DWORD dwTickCountDeadline; 00353 DWORD dwTrackFlags; 00354 DWORD dwClassContext; 00355 LCID locale; 00356 COSERVERINFO *pServerInfo; 00357 HWND hwnd; 00358 } BIND_OPTS3, *LPBIND_OPTS3; 00359 00360 typedef enum tagBIND_FLAGS { 00361 BIND_MAYBOTHERUSER = 1, 00362 BIND_JUSTTESTEXISTENCE = 2 00363 } BIND_FLAGS; 00364 00365 HRESULT RegisterObjectBound( 00366 [in, unique] IUnknown *punk); 00367 00368 HRESULT RevokeObjectBound( 00369 [in, unique] IUnknown *punk); 00370 00371 HRESULT ReleaseBoundObjects(); 00372 00373 [local] 00374 HRESULT SetBindOptions( 00375 [in] BIND_OPTS *pbindopts); 00376 00377 [call_as(SetBindOptions)] 00378 HRESULT RemoteSetBindOptions( 00379 [in] BIND_OPTS2 *pbindopts); 00380 00381 [local] 00382 HRESULT GetBindOptions( 00383 [in, out] BIND_OPTS *pbindopts); 00384 00385 [call_as(GetBindOptions)] 00386 HRESULT RemoteGetBindOptions( 00387 [in, out] BIND_OPTS2 *pbindopts); 00388 00389 HRESULT GetRunningObjectTable( 00390 [out] IRunningObjectTable **pprot); 00391 00392 HRESULT RegisterObjectParam( 00393 [in] LPOLESTR pszKey, 00394 [in, unique] IUnknown *punk); 00395 00396 HRESULT GetObjectParam( 00397 [in] LPOLESTR pszKey, 00398 [out] IUnknown **ppunk); 00399 00400 HRESULT EnumObjectParam( 00401 [out] IEnumString **ppenum); 00402 00403 HRESULT RevokeObjectParam( 00404 [in] LPOLESTR pszKey); 00405 } 00406 00407 [ 00408 object, 00409 uuid(00000102-0000-0000-C000-000000000046), 00410 pointer_default(unique) 00411 ] 00412 interface IEnumMoniker : IUnknown 00413 { 00414 typedef [unique] IEnumMoniker *LPENUMMONIKER; 00415 00416 [local] 00417 HRESULT Next( 00418 [in] ULONG celt, 00419 [out, size_is(celt), length_is(*pceltFetched)] 00420 IMoniker **rgelt, 00421 [out] ULONG *pceltFetched); 00422 00423 [call_as(Next)] 00424 HRESULT RemoteNext( 00425 [in] ULONG celt, 00426 [out, size_is(celt), length_is(*pceltFetched)] 00427 IMoniker **rgelt, 00428 [out] ULONG *pceltFetched); 00429 00430 HRESULT Skip( 00431 [in] ULONG celt); 00432 00433 HRESULT Reset(); 00434 00435 HRESULT Clone( 00436 [out] IEnumMoniker **ppenum); 00437 } 00438 00439 [ 00440 object, 00441 uuid(00000126-0000-0000-C000-000000000046) 00442 ] 00443 interface IRunnableObject : IUnknown 00444 { 00445 typedef [unique] IRunnableObject *LPRUNNABLEOBJECT; 00446 00447 HRESULT GetRunningClass( 00448 [out] LPCLSID lpClsid); 00449 00450 HRESULT Run( 00451 [in] LPBINDCTX pbc); 00452 00453 [local] 00454 BOOL IsRunning(); 00455 00456 [call_as(IsRunning)] 00457 HRESULT RemoteIsRunning(); 00458 00459 HRESULT LockRunning( 00460 [in] BOOL fLock, 00461 [in] BOOL fLastUnlockCloses); 00462 00463 HRESULT SetContainedObject( 00464 [in] BOOL fContained); 00465 } 00466 00467 /* GetObject is defined in wingdi.h as WINELIB_NAME_AW(GetObject), 00468 * which resolves to a compilation failure if WINE_NO_UNICODE_MACROS is defined, 00469 * but GetObject is used as a valid method name below, so we have 00470 * to undefine it in that case */ 00471 cpp_quote("#ifdef WINE_NO_UNICODE_MACROS") 00472 cpp_quote("#undef GetObject") 00473 cpp_quote("#endif") 00474 00475 [ 00476 object, 00477 uuid(00000010-0000-0000-C000-000000000046) 00478 ] 00479 interface IRunningObjectTable : IUnknown 00480 { 00481 typedef [unique] IRunningObjectTable *LPRUNNINGOBJECTTABLE; 00482 00483 HRESULT Register( 00484 [in] DWORD grfFlags, 00485 [in, unique] IUnknown *punkObject, 00486 [in, unique] IMoniker *pmkObjectName, 00487 [out] DWORD *pdwRegister); 00488 00489 HRESULT Revoke( 00490 [in] DWORD dwRegister); 00491 00492 HRESULT IsRunning( 00493 [in, unique] IMoniker *pmkObjectName); 00494 00495 HRESULT GetObject( 00496 [in, unique] IMoniker *pmkObjectName, 00497 [out] IUnknown **ppunkObject); 00498 00499 HRESULT NoteChangeTime( 00500 [in] DWORD dwRegister, 00501 [in] FILETIME *pfiletime); 00502 00503 HRESULT GetTimeOfLastChange( 00504 [in, unique] IMoniker *pmkObjectName, 00505 [out] FILETIME *pfiletime); 00506 00507 HRESULT EnumRunning( 00508 [out] IEnumMoniker **ppenumMoniker); 00509 } 00510 00511 [ 00512 object, 00513 uuid(0000010c-0000-0000-C000-000000000046) 00514 ] 00515 interface IPersist : IUnknown 00516 { 00517 typedef [unique] IPersist *LPPERSIST; 00518 00519 HRESULT GetClassID( 00520 [out] CLSID *pClassID); 00521 } 00522 00523 [ 00524 object, 00525 uuid(00000109-0000-0000-C000-000000000046), 00526 pointer_default(unique) 00527 ] 00528 interface IPersistStream : IPersist 00529 { 00530 typedef [unique] IPersistStream *LPPERSISTSTREAM; 00531 00532 HRESULT IsDirty(); 00533 00534 HRESULT Load( 00535 [in, unique] IStream *pStm); 00536 00537 HRESULT Save( 00538 [in, unique] IStream *pStm, 00539 [in] BOOL fClearDirty); 00540 00541 HRESULT GetSizeMax( 00542 [out] ULARGE_INTEGER *pcbSize); 00543 } 00544 00545 [ 00546 object, 00547 uuid(0000000f-0000-0000-C000-000000000046), 00548 pointer_default(unique) 00549 ] 00550 interface IMoniker : IPersistStream 00551 { 00552 typedef [unique] IMoniker *LPMONIKER; 00553 00554 typedef enum tagMKSYS { 00555 MKSYS_NONE = 0, 00556 MKSYS_GENERICCOMPOSITE = 1, 00557 MKSYS_FILEMONIKER = 2, 00558 MKSYS_ANTIMONIKER = 3, 00559 MKSYS_ITEMMONIKER = 4, 00560 MKSYS_POINTERMONIKER = 5, 00561 /* MKSYS_URLMONIKER = 6, */ /* defined in urlmon.idl */ 00562 MKSYS_CLASSMONIKER = 7 00563 } MKSYS; 00564 00565 typedef [v1_enum] enum tagMKREDUCE { 00566 MKRREDUCE_ONE = 3 << 16, 00567 MKRREDUCE_TOUSER = 2 << 16, 00568 MKRREDUCE_THROUGHUSER = 1 << 16, 00569 MKRREDUCE_ALL = 0 00570 } MKRREDUCE; 00571 00572 [local] 00573 HRESULT BindToObject( 00574 [in, unique] IBindCtx *pbc, 00575 [in, unique] IMoniker *pmkToLeft, 00576 [in] REFIID riidResult, 00577 [out, iid_is(riidResult)] void **ppvResult); 00578 00579 [call_as(BindToObject)] 00580 HRESULT RemoteBindToObject( 00581 [in, unique] IBindCtx *pbc, 00582 [in, unique] IMoniker *pmkToLeft, 00583 [in] REFIID riidResult, 00584 [out, iid_is(riidResult)] IUnknown **ppvResult); 00585 00586 [local] 00587 HRESULT BindToStorage( 00588 [in, unique] IBindCtx *pbc, 00589 [in, unique] IMoniker *pmkToLeft, 00590 [in] REFIID riid, 00591 [out, iid_is(riid)] void **ppvObj); 00592 00593 [call_as(BindToStorage)] 00594 HRESULT RemoteBindToStorage( 00595 [in, unique] IBindCtx *pbc, 00596 [in, unique] IMoniker *pmkToLeft, 00597 [in] REFIID riid, 00598 [out, iid_is(riid)] IUnknown **ppvObj); 00599 00600 HRESULT Reduce( 00601 [in, unique] IBindCtx *pbc, 00602 [in] DWORD dwReduceHowFar, 00603 [in, out, unique] IMoniker **ppmkToLeft, 00604 [out] IMoniker **ppmkReduced); 00605 00606 HRESULT ComposeWith( 00607 [in, unique] IMoniker *pmkRight, 00608 [in] BOOL fOnlyIfNotGeneric, 00609 [out] IMoniker **ppmkComposite); 00610 00611 HRESULT Enum( 00612 [in] BOOL fForward, 00613 [out] IEnumMoniker **ppenumMoniker); 00614 00615 HRESULT IsEqual( 00616 [in, unique] IMoniker *pmkOtherMoniker); 00617 00618 HRESULT Hash( 00619 [out] DWORD *pdwHash); 00620 00621 HRESULT IsRunning( 00622 [in, unique] IBindCtx *pbc, 00623 [in, unique] IMoniker *pmkToLeft, 00624 [in, unique] IMoniker *pmkNewlyRunning); 00625 00626 HRESULT GetTimeOfLastChange( 00627 [in, unique] IBindCtx *pbc, 00628 [in, unique] IMoniker *pmkToLeft, 00629 [out] FILETIME *pFileTime); 00630 00631 HRESULT Inverse( 00632 [out] IMoniker **ppmk); 00633 00634 HRESULT CommonPrefixWith( 00635 [in, unique] IMoniker *pmkOther, 00636 [out] IMoniker **ppmkPrefix); 00637 00638 HRESULT RelativePathTo( 00639 [in, unique] IMoniker *pmkOther, 00640 [out] IMoniker **ppmkRelPath); 00641 00642 HRESULT GetDisplayName( 00643 [in, unique] IBindCtx *pbc, 00644 [in, unique] IMoniker *pmkToLeft, 00645 [out] LPOLESTR *ppszDisplayName); 00646 00647 HRESULT ParseDisplayName( 00648 [in, unique] IBindCtx *pbc, 00649 [in, unique] IMoniker *pmkToLeft, 00650 [in] LPOLESTR pszDisplayName, 00651 [out] ULONG *pchEaten, 00652 [out] IMoniker **ppmkOut); 00653 00654 HRESULT IsSystemMoniker( 00655 [out] DWORD *pdwMksys); 00656 } 00657 00658 [ 00659 object, 00660 uuid(f29f6bc0-5021-11ce-aa15-00006901293f), 00661 pointer_default(unique) 00662 ] 00663 interface IROTData : IUnknown 00664 { 00665 HRESULT GetComparisonData( 00666 [out, size_is(cbMax)] byte *pbData, 00667 [in] ULONG cbMax, 00668 [out] ULONG *pcbData); 00669 } 00670 00671 [ 00672 object, 00673 uuid(00000101-0000-0000-C000-000000000046), 00674 pointer_default(unique) 00675 ] 00676 interface IEnumString : IUnknown 00677 { 00678 typedef [unique] IEnumString *LPENUMSTRING; 00679 00680 [local] 00681 HRESULT Next( 00682 [in] ULONG celt, 00683 [out, size_is(celt), length_is(*pceltFetched)] 00684 LPOLESTR *rgelt, 00685 [out] ULONG *pceltFetched); 00686 00687 [call_as(Next)] 00688 HRESULT RemoteNext( 00689 [in] ULONG celt, 00690 [out, size_is(celt), length_is(*pceltFetched)] 00691 LPOLESTR *rgelt, 00692 [out] ULONG *pceltFetched); 00693 00694 HRESULT Skip( 00695 [in] ULONG celt); 00696 00697 HRESULT Reset(); 00698 00699 HRESULT Clone( 00700 [out] IEnumString **ppenum); 00701 } 00702 00703 [ 00704 object, 00705 uuid(00000140-0000-0000-C000-000000000046) 00706 ] 00707 interface IClassActivator : IUnknown 00708 { 00709 HRESULT GetClassObject( 00710 [in] REFCLSID rclsid, 00711 [in] DWORD dwClassContext, 00712 [in] LCID locale, 00713 [in] REFIID riid, 00714 [out, iid_is(riid)] void **ppv); 00715 } 00716 00717 /******************** Storage ********************/ 00718 00719 [ 00720 object, 00721 uuid(0c733a30-2a1c-11ce-ade5-00aa0044773d), 00722 pointer_default(unique) 00723 ] 00724 interface ISequentialStream : IUnknown 00725 { 00726 [local] 00727 HRESULT Read( 00728 [out, size_is(cb), length_is(*pcbRead)] 00729 void *pv, 00730 [in] ULONG cb, 00731 [out] ULONG *pcbRead); 00732 00733 [call_as(Read)] 00734 HRESULT RemoteRead( 00735 [out, size_is(cb), length_is(*pcbRead)] 00736 byte *pv, 00737 [in] ULONG cb, 00738 [out] ULONG *pcbRead); 00739 00740 [local] 00741 HRESULT Write( 00742 [in, size_is(cb)] const void *pv, 00743 [in] ULONG cb, 00744 [out] ULONG *pcbWritten); 00745 00746 [call_as(Write)] 00747 HRESULT RemoteWrite( 00748 [in, size_is(cb)] const byte *pv, 00749 [in] ULONG cb, 00750 [out] ULONG *pcbWritten); 00751 } 00752 00753 [ 00754 object, 00755 uuid(0000000c-0000-0000-C000-000000000046), 00756 pointer_default(unique) 00757 ] 00758 interface IStream : ISequentialStream 00759 { 00760 typedef [unique] IStream *LPSTREAM; 00761 00762 typedef struct tagSTATSTG { 00763 LPOLESTR pwcsName; 00764 DWORD type; 00765 ULARGE_INTEGER cbSize; 00766 FILETIME mtime; 00767 FILETIME ctime; 00768 FILETIME atime; 00769 DWORD grfMode; 00770 DWORD grfLocksSupported; 00771 CLSID clsid; 00772 DWORD grfStateBits; 00773 DWORD reserved; 00774 } STATSTG; 00775 00776 typedef enum tagSTGTY { 00777 STGTY_STORAGE = 1, 00778 STGTY_STREAM = 2, 00779 STGTY_LOCKBYTES = 3, 00780 STGTY_PROPERTY = 4 00781 } STGTY; 00782 00783 typedef enum tagSTREAM_SEEK { 00784 STREAM_SEEK_SET = 0, 00785 STREAM_SEEK_CUR = 1, 00786 STREAM_SEEK_END = 2 00787 } STREAM_SEEK; 00788 00789 /* these are defined in Linux's fcntl.h, 00790 * undefine them to avoid conflicts */ 00791 cpp_quote("#undef LOCK_MAND") 00792 cpp_quote("#undef LOCK_READ") 00793 cpp_quote("#undef LOCK_WRITE") 00794 cpp_quote("#undef LOCK_RW") 00795 00796 typedef enum tagLOCKTYPE { 00797 LOCK_WRITE = 1, 00798 LOCK_EXCLUSIVE = 2, 00799 LOCK_ONLYONCE = 4 00800 } LOCKTYPE; 00801 00802 [local] 00803 HRESULT Seek( 00804 [in] LARGE_INTEGER dlibMove, 00805 [in] DWORD dwOrigin, 00806 [out] ULARGE_INTEGER *plibNewPosition); 00807 00808 [call_as(Seek)] 00809 HRESULT RemoteSeek( 00810 [in] LARGE_INTEGER dlibMove, 00811 [in] DWORD dwOrigin, 00812 [out] ULARGE_INTEGER *plibNewPosition); 00813 00814 HRESULT SetSize( 00815 [in] ULARGE_INTEGER libNewSize); 00816 00817 [local] 00818 HRESULT CopyTo( 00819 [in, unique] IStream *pstm, 00820 [in] ULARGE_INTEGER cb, 00821 [out] ULARGE_INTEGER *pcbRead, 00822 [out] ULARGE_INTEGER *pcbWritten); 00823 00824 [call_as(CopyTo)] 00825 HRESULT RemoteCopyTo( 00826 [in, unique] IStream *pstm, 00827 [in] ULARGE_INTEGER cb, 00828 [out] ULARGE_INTEGER *pcbRead, 00829 [out] ULARGE_INTEGER *pcbWritten); 00830 00831 HRESULT Commit( 00832 [in] DWORD grfCommitFlags); 00833 00834 HRESULT Revert(); 00835 00836 HRESULT LockRegion( 00837 [in] ULARGE_INTEGER libOffset, 00838 [in] ULARGE_INTEGER cb, 00839 [in] DWORD dwLockType); 00840 00841 HRESULT UnlockRegion( 00842 [in] ULARGE_INTEGER libOffset, 00843 [in] ULARGE_INTEGER cb, 00844 [in] DWORD dwLockType); 00845 00846 HRESULT Stat( 00847 [out] STATSTG *pstatstg, 00848 [in] DWORD grfStatFlag); 00849 00850 HRESULT Clone( 00851 [out] IStream **ppstm); 00852 } 00853 00854 [ 00855 object, 00856 uuid(0000000d-0000-0000-C000-000000000046), 00857 pointer_default(unique) 00858 ] 00859 interface IEnumSTATSTG : IUnknown 00860 { 00861 typedef [unique] IEnumSTATSTG *LPENUMSTATSTG; 00862 00863 [local] 00864 HRESULT Next( 00865 [in] ULONG celt, 00866 [out, size_is(celt), length_is(*pceltFetched)] 00867 STATSTG *rgelt, 00868 [out] ULONG *pceltFetched); 00869 00870 [call_as(Next)] 00871 HRESULT RemoteNext( 00872 [in] ULONG celt, 00873 [out, size_is(celt), length_is(*pceltFetched)] 00874 STATSTG *rgelt, 00875 [out] ULONG *pceltFetched); 00876 00877 HRESULT Skip( 00878 [in] ULONG celt); 00879 00880 HRESULT Reset(); 00881 00882 HRESULT Clone( 00883 [out] IEnumSTATSTG **ppenum); 00884 } 00885 00886 [ 00887 object, 00888 uuid(0000000b-0000-0000-C000-000000000046), 00889 pointer_default(unique) 00890 ] 00891 interface IStorage : IUnknown 00892 { 00893 typedef [unique] IStorage *LPSTORAGE; 00894 00895 typedef struct tagRemSNB { 00896 unsigned long ulCntStr; 00897 unsigned long ulCntChar; 00898 [size_is(ulCntChar)] OLECHAR rgString[]; 00899 } RemSNB; 00900 00901 typedef [unique] RemSNB *wireSNB; 00902 typedef [wire_marshal(wireSNB)] OLECHAR **SNB; 00903 00904 HRESULT CreateStream( 00905 [in] LPCOLESTR pwcsName, 00906 [in] DWORD grfMode, 00907 [in] DWORD reserved1, 00908 [in] DWORD reserved2, 00909 [out] IStream **ppstm); 00910 00911 [local] 00912 HRESULT OpenStream( 00913 [in] LPCOLESTR pwcsName, 00914 [in, unique] void *reserved1, 00915 [in] DWORD grfMode, 00916 [in] DWORD reserved2, 00917 [out] IStream **ppstm); 00918 00919 [call_as(OpenStream)] 00920 HRESULT RemoteOpenStream( 00921 [in] LPCOLESTR pwcsName, 00922 [in] unsigned long cbReserved1, 00923 [in, unique, size_is(cbReserved1)] byte *reserved1, 00924 [in] DWORD grfMode, 00925 [in] DWORD reserved2, 00926 [out] IStream **ppstm); 00927 00928 HRESULT CreateStorage( 00929 [in] LPCOLESTR pwcsName, 00930 [in] DWORD grfMode, 00931 [in] DWORD dwStgFmt, 00932 [in] DWORD reserved2, 00933 [out] IStorage **ppstg); 00934 00935 HRESULT OpenStorage( 00936 [in, unique] LPCOLESTR pwcsName, 00937 [in, unique] IStorage *pstgPriority, 00938 [in] DWORD grfMode, 00939 [in, unique] SNB snbExclude, 00940 [in] DWORD reserved, 00941 [out] IStorage **ppstg); 00942 00943 HRESULT CopyTo( 00944 [in] DWORD ciidExclude, 00945 [in, unique, size_is(ciidExclude)] const IID *rgiidExclude, 00946 [in, unique] SNB snbExclude, 00947 [in, unique] IStorage *pstgDest); 00948 00949 HRESULT MoveElementTo( 00950 [in] LPCOLESTR pwcsName, 00951 [in, unique] IStorage *pstgDest, 00952 [in] LPCOLESTR pwcsNewName, 00953 [in] DWORD grfFlags); 00954 00955 HRESULT Commit( 00956 [in] DWORD grfCommitFlags); 00957 00958 HRESULT Revert(); 00959 00960 [local] 00961 HRESULT EnumElements( 00962 [in] DWORD reserved1, 00963 [in, unique, size_is(1)] void *reserved2, 00964 [in] DWORD reserved3, 00965 [out] IEnumSTATSTG **ppenum); 00966 00967 [call_as(EnumElements)] 00968 HRESULT RemoteEnumElements( 00969 [in] DWORD reserved1, 00970 [in] unsigned long cbReserved2, 00971 [in, unique, size_is(cbReserved2)] byte *reserved2, 00972 [in] DWORD reserved3, 00973 [out] IEnumSTATSTG **ppenum); 00974 00975 HRESULT DestroyElement( 00976 [in] LPCOLESTR pwcsName); 00977 00978 HRESULT RenameElement( 00979 [in] LPCOLESTR pwcsOldName, 00980 [in] LPCOLESTR pwcsNewName); 00981 00982 HRESULT SetElementTimes( 00983 [in, unique] LPCOLESTR pwcsName, 00984 [in, unique] const FILETIME *pctime, 00985 [in, unique] const FILETIME *patime, 00986 [in, unique] const FILETIME *pmtime); 00987 00988 HRESULT SetClass( 00989 [in] REFCLSID clsid); 00990 00991 HRESULT SetStateBits( 00992 [in] DWORD grfStateBits, 00993 [in] DWORD grfMask); 00994 00995 HRESULT Stat( 00996 [out] STATSTG *pstatstg, 00997 [in] DWORD grfStatFlag); 00998 } 00999 01000 [ 01001 object, 01002 uuid(0000010b-0000-0000-C000-000000000046), 01003 pointer_default(unique) 01004 ] 01005 interface IPersistFile : IPersist 01006 { 01007 typedef [unique] IPersistFile *LPPERSISTFILE; 01008 01009 HRESULT IsDirty(); 01010 01011 HRESULT Load( 01012 [in] LPCOLESTR pszFileName, 01013 [in] DWORD dwMode); 01014 01015 HRESULT Save( 01016 [in, unique] LPCOLESTR pszFileName, 01017 [in] BOOL fRemember); 01018 01019 HRESULT SaveCompleted( 01020 [in, unique] LPCOLESTR pszFileName); 01021 01022 HRESULT GetCurFile( 01023 [out] LPOLESTR *ppszFileName); 01024 } 01025 01026 [ 01027 object, 01028 uuid(0000010a-0000-0000-C000-000000000046), 01029 pointer_default(unique) 01030 ] 01031 interface IPersistStorage : IPersist 01032 { 01033 typedef [unique] IPersistStorage *LPPERSISTSTORAGE; 01034 01035 HRESULT IsDirty(); 01036 01037 HRESULT InitNew( 01038 [in, unique] IStorage *pStg); 01039 01040 HRESULT Load( 01041 [in, unique] IStorage *pStg); 01042 01043 HRESULT Save( 01044 [in, unique] IStorage *pStgSave, 01045 [in] BOOL fSameAsLoad); 01046 01047 HRESULT SaveCompleted( 01048 [in, unique] IStorage *pStgNew); 01049 01050 HRESULT HandsOffStorage(); 01051 } 01052 01053 [ 01054 object, 01055 uuid(00000012-0000-0000-C000-000000000046), 01056 pointer_default(unique) 01057 ] 01058 interface IRootStorage : IUnknown 01059 { 01060 typedef [unique] IRootStorage *LPROOTSTORAGE; 01061 01062 HRESULT SwitchToFile( 01063 [in] LPOLESTR pszFile); 01064 } 01065 01066 [ 01067 object, 01068 uuid(0000000a-0000-0000-C000-000000000046), 01069 pointer_default(unique) 01070 ] 01071 interface ILockBytes : IUnknown 01072 { 01073 typedef [unique] ILockBytes *LPLOCKBYTES; 01074 01075 [local] 01076 HRESULT ReadAt( 01077 [in] ULARGE_INTEGER ulOffset, 01078 [out, size_is(cb), length_is(*pcbRead)] 01079 void *pv, 01080 [in] ULONG cb, 01081 [out] ULONG *pcbRead); 01082 01083 [call_as(ReadAt)] 01084 HRESULT RemoteReadAt( 01085 [in] ULARGE_INTEGER ulOffset, 01086 [out, size_is(cb), length_is(*pcbRead)] 01087 byte *pv, 01088 [in] ULONG cb, 01089 [out] ULONG *pcbRead); 01090 01091 [local] 01092 HRESULT WriteAt( 01093 [in] ULARGE_INTEGER ulOffset, 01094 [in, size_is(cb)] const void *pv, 01095 [in] ULONG cb, 01096 [out] ULONG *pcbWritten); 01097 01098 [call_as(WriteAt)] 01099 HRESULT RemoteWriteAt( 01100 [in] ULARGE_INTEGER ulOffset, 01101 [in, size_is(cb)] const byte *pv, 01102 [in] ULONG cb, 01103 [out] ULONG *pcbWritten); 01104 01105 HRESULT Flush(); 01106 01107 HRESULT SetSize( 01108 [in] ULARGE_INTEGER cb); 01109 01110 HRESULT LockRegion( 01111 [in] ULARGE_INTEGER libOffset, 01112 [in] ULARGE_INTEGER cb, 01113 [in] DWORD dwLockType); 01114 01115 HRESULT UnlockRegion( 01116 [in] ULARGE_INTEGER libOffset, 01117 [in] ULARGE_INTEGER cb, 01118 [in] DWORD dwLockType); 01119 01120 HRESULT Stat( 01121 [out] STATSTG *pstatstg, 01122 [in] DWORD grfStatFlag); 01123 } 01124 01125 [ 01126 object, 01127 uuid(99caf010-415e-11cf-8814-00aa00b569f5), 01128 pointer_default(unique) 01129 ] 01130 interface IFillLockBytes : IUnknown 01131 { 01132 [local] 01133 HRESULT FillAppend( 01134 [in, size_is(cb)] const void *pv, 01135 [in] ULONG cb, 01136 [out] ULONG *pcbWritten); 01137 01138 [call_as(FillAppend)] 01139 HRESULT RemoteFillAppend( 01140 [in, size_is(cb)] const byte *pv, 01141 [in] ULONG cb, 01142 [out] ULONG *pcbWritten); 01143 01144 [local] 01145 HRESULT FillAt( 01146 [in] ULARGE_INTEGER ulOffset, 01147 [in, size_is(cb)] const void *pv, 01148 [in] ULONG cb, 01149 [out] ULONG *pcbWritten); 01150 01151 [call_as(FillAt)] 01152 HRESULT RemoteFillAt( 01153 [in] ULARGE_INTEGER ulOffset, 01154 [in, size_is(cb)] const byte *pv, 01155 [in] ULONG cb, 01156 [out] ULONG *pcbWritten); 01157 01158 HRESULT SetFillSize( 01159 [in] ULARGE_INTEGER ulSize); 01160 01161 HRESULT Terminate( 01162 [in] BOOL bCanceled); 01163 } 01164 01165 [ 01166 object, 01167 uuid(a9d758a0-4617-11cf-95fc-00aa00680db4), 01168 pointer_default(unique) 01169 ] 01170 interface IProgressNotify : IUnknown 01171 { 01172 HRESULT OnProgress( 01173 [in] DWORD dwProgressCurrent, 01174 [in] DWORD dwProgressMaximum, 01175 [in] BOOL fAccurate, 01176 [in] BOOL fOwner); 01177 } 01178 01179 [ 01180 local, 01181 object, 01182 uuid(0e6d4d90-6738-11cf-9608-00aa00680db4), 01183 pointer_default(unique) 01184 ] 01185 interface ILayoutStorage : IUnknown 01186 { 01187 typedef struct tagStorageLayout { 01188 DWORD LayoutType; 01189 OLECHAR *pwcsElementName; 01190 LARGE_INTEGER cOffset; 01191 LARGE_INTEGER cBytes; 01192 } StorageLayout; 01193 01194 HRESULT LayoutScript( 01195 [in] StorageLayout *pStorageLayout, 01196 [in] DWORD nEntries, 01197 [in] DWORD glfInterleavedFlag); 01198 01199 HRESULT BeginMonitor(); 01200 01201 HRESULT EndMonitor(); 01202 01203 HRESULT ReLayoutDocfile( 01204 [in] OLECHAR *pwcsNewDfName); 01205 01206 HRESULT ReLayoutDocfileOnILockBytes( 01207 [in] ILockBytes *pILockBytes); 01208 } 01209 01210 [ 01211 object, 01212 uuid(30f3d47a-6447-11d1-8e3c-00c04fb9386d) 01213 ] 01214 interface IBlockingLock : IUnknown 01215 { 01216 HRESULT Lock( 01217 [in] DWORD dwTimeout); 01218 01219 HRESULT Unlock(); 01220 } 01221 01222 01223 [ 01224 object, 01225 uuid(bc0bf6ae-8878-11d1-83e9-00c04fc2c6d4) 01226 ] 01227 interface ITimeAndNoticeControl : IUnknown 01228 { 01229 HRESULT SuppressChanges( 01230 [in] DWORD res1, 01231 [in] DWORD res2); 01232 01233 } 01234 01235 01236 01237 [ 01238 object, 01239 uuid(8d19c834-8879-11d1-83e9-00c04fc2c6d4) 01240 ] 01241 interface IOplockStorage: IUnknown 01242 { 01243 HRESULT CreateStorageEx( 01244 [in] LPCWSTR pwcsName, 01245 [in] DWORD grfMode, 01246 [in] DWORD stgfmt, 01247 [in] DWORD grfAttrs, 01248 [in] REFIID riid, 01249 [out, iid_is(riid)] void **ppstgOpen); 01250 01251 HRESULT OpenStorageEx( 01252 [in] LPCWSTR pwcsName, 01253 [in] DWORD grfMode, 01254 [in] DWORD stgfmt, 01255 [in] DWORD grfAttrs, 01256 [in] REFIID riid, 01257 [out, iid_is(riid)] void **ppstgOpen); 01258 } 01259 01260 /******************** Data Object ********************/ 01261 01262 [ 01263 object, 01264 uuid(00000103-0000-0000-C000-000000000046), 01265 pointer_default(unique) 01266 ] 01267 interface IEnumFORMATETC : IUnknown 01268 { 01269 typedef [unique] IEnumFORMATETC *LPENUMFORMATETC; 01270 01271 typedef struct tagDVTARGETDEVICE { 01272 DWORD tdSize; 01273 WORD tdDriverNameOffset; 01274 WORD tdDeviceNameOffset; 01275 WORD tdPortNameOffset; 01276 WORD tdExtDevmodeOffset; 01277 [size_is(tdSize - sizeof(DWORD) - 4*sizeof(WORD))] 01278 BYTE tdData[]; 01279 } DVTARGETDEVICE; 01280 01281 typedef CLIPFORMAT *LPCLIPFORMAT; 01282 01283 typedef struct tagFORMATETC { 01284 CLIPFORMAT cfFormat; 01285 [unique] DVTARGETDEVICE *ptd; 01286 DWORD dwAspect; 01287 LONG lindex; 01288 DWORD tymed; 01289 } FORMATETC, *LPFORMATETC; 01290 01291 [local] 01292 HRESULT Next( 01293 [in] ULONG celt, 01294 [out, size_is(celt), length_is(*pceltFetched)] 01295 FORMATETC *rgelt, 01296 [out] ULONG *pceltFetched); 01297 01298 [call_as(Next)] 01299 HRESULT RemoteNext( 01300 [in] ULONG celt, 01301 [out, size_is(celt), length_is(*pceltFetched)] 01302 FORMATETC *rgelt, 01303 [out] ULONG *pceltFetched); 01304 01305 HRESULT Skip( 01306 [in] ULONG celt); 01307 01308 HRESULT Reset(); 01309 01310 HRESULT Clone( 01311 [out] IEnumFORMATETC **ppenum); 01312 } 01313 01314 [ 01315 object, 01316 uuid(00000105-0000-0000-C000-000000000046), 01317 pointer_default(unique) 01318 ] 01319 interface IEnumSTATDATA : IUnknown 01320 { 01321 typedef [unique] IEnumSTATDATA *LPENUMSTATDATA; 01322 01323 typedef enum tagADVF { 01324 ADVF_NODATA = 1, 01325 ADVF_PRIMEFIRST = 2, 01326 ADVF_ONLYONCE = 4, 01327 ADVF_DATAONSTOP = 64, 01328 ADVFCACHE_NOHANDLER = 8, 01329 ADVFCACHE_FORCEBUILTIN = 16, 01330 ADVFCACHE_ONSAVE = 32 01331 } ADVF; 01332 01333 typedef struct tagSTATDATA 01334 { 01335 FORMATETC formatetc; 01336 DWORD advf; 01337 [unique] IAdviseSink *pAdvSink; 01338 DWORD dwConnection; 01339 } STATDATA, *LPSTATDATA; 01340 01341 [local] 01342 HRESULT Next( 01343 [in] ULONG celt, 01344 [out, size_is(celt), length_is(*pceltFetched)] 01345 STATDATA *rgelt, 01346 [out] ULONG *pceltFetched); 01347 01348 [call_as(Next)] 01349 HRESULT RemoteNext( 01350 [in] ULONG celt, 01351 [out, size_is(celt), length_is(*pceltFetched)] 01352 STATDATA *rgelt, 01353 [out] ULONG *pceltFetched); 01354 01355 HRESULT Skip( 01356 [in] ULONG celt); 01357 01358 HRESULT Reset(); 01359 01360 HRESULT Clone( 01361 [out] IEnumSTATDATA **ppenum); 01362 } 01363 01364 [ 01365 object, 01366 uuid(0000010f-0000-0000-C000-000000000046), 01367 pointer_default(unique) 01368 ] 01369 interface IAdviseSink : IUnknown 01370 { 01371 typedef IAdviseSink *LPADVISESINK; 01372 01373 typedef [v1_enum] enum tagTYMED { 01374 TYMED_HGLOBAL = 1, 01375 TYMED_FILE = 2, 01376 TYMED_ISTREAM = 4, 01377 TYMED_ISTORAGE = 8, 01378 TYMED_GDI = 16, 01379 TYMED_MFPICT = 32, 01380 TYMED_ENHMF = 64, 01381 TYMED_NULL = 0 01382 } TYMED; 01383 01384 typedef struct tagRemSTGMEDIUM { 01385 DWORD tymed; 01386 DWORD dwHandleType; 01387 unsigned long pData; 01388 unsigned long pUnkForRelease; 01389 unsigned long cbData; 01390 [size_is(cbData)] byte data[]; 01391 } RemSTGMEDIUM; 01392 01393 typedef struct tagSTGMEDIUM { 01394 DWORD tymed; 01395 [switch_is(tymed)] union { 01396 [case(TYMED_GDI)] HBITMAP hBitmap; 01397 [case(TYMED_MFPICT)] HMETAFILEPICT hMetaFilePict; 01398 [case(TYMED_ENHMF)] HENHMETAFILE hEnhMetaFile; 01399 [case(TYMED_HGLOBAL)] HGLOBAL hGlobal; 01400 [case(TYMED_FILE)] LPOLESTR lpszFileName; 01401 [case(TYMED_ISTREAM)] IStream *pstm; 01402 [case(TYMED_ISTORAGE)] IStorage *pstg; 01403 [default] ; 01404 } DUMMYUNIONNAME; 01405 [unique] IUnknown *pUnkForRelease; 01406 } uSTGMEDIUM; 01407 01408 /* copied from wingdi.h */ 01409 #define OBJ_PEN 1 01410 #define OBJ_BRUSH 2 01411 #define OBJ_DC 3 01412 #define OBJ_METADC 4 01413 #define OBJ_PAL 5 01414 #define OBJ_FONT 6 01415 #define OBJ_BITMAP 7 01416 #define OBJ_REGION 8 01417 #define OBJ_METAFILE 9 01418 #define OBJ_MEMDC 10 01419 #define OBJ_EXTPEN 11 01420 #define OBJ_ENHMETADC 12 01421 #define OBJ_ENHMETAFILE 13 01422 01423 typedef union _GDI_OBJECT switch(DWORD ObjectType) u { 01424 case OBJ_BITMAP: wireHBITMAP hBitmap; 01425 case OBJ_PAL: wireHPALETTE hPalette; 01426 default: wireHGLOBAL hGeneric; 01427 } GDI_OBJECT; 01428 01429 typedef struct _userSTGMEDIUM { 01430 union switch(DWORD tymed) u { 01431 case TYMED_NULL: ; 01432 case TYMED_MFPICT: wireHMETAFILEPICT hMetaFilePict; 01433 case TYMED_ENHMF: wireHENHMETAFILE hHEnhMetaFile; 01434 case TYMED_GDI: GDI_OBJECT *hGdiHandle; 01435 case TYMED_HGLOBAL: wireHGLOBAL hGlobal; 01436 case TYMED_FILE: LPOLESTR lpszFileName; 01437 case TYMED_ISTREAM: BYTE_BLOB *pstm; 01438 case TYMED_ISTORAGE: BYTE_BLOB *pstg; 01439 } DUMMYUNIONNAME; 01440 IUnknown *pUnkForRelease; 01441 } userSTGMEDIUM; 01442 01443 typedef [unique] userSTGMEDIUM *wireSTGMEDIUM; 01444 typedef [wire_marshal(wireSTGMEDIUM)] uSTGMEDIUM STGMEDIUM; 01445 01446 typedef [unique] userSTGMEDIUM *wireASYNC_STGMEDIUM; 01447 typedef [wire_marshal(wireASYNC_STGMEDIUM)] STGMEDIUM ASYNC_STGMEDIUM; 01448 01449 typedef STGMEDIUM *LPSTGMEDIUM; 01450 01451 typedef struct _userFLAG_STGMEDIUM { 01452 long ContextFlags; 01453 long fPassOwnership; 01454 userSTGMEDIUM Stgmed; 01455 } userFLAG_STGMEDIUM; 01456 01457 typedef [unique] userFLAG_STGMEDIUM *wireFLAG_STGMEDIUM; 01458 01459 typedef [wire_marshal(wireFLAG_STGMEDIUM)] struct _FLAG_STGMEDIUM { 01460 long ContextFlags; 01461 long fPassOwnership; 01462 STGMEDIUM Stgmed; 01463 } FLAG_STGMEDIUM; 01464 01465 [local] 01466 void OnDataChange( 01467 [in, unique] FORMATETC *pFormatetc, 01468 [in, unique] STGMEDIUM *pStgmed); 01469 01470 [call_as(OnDataChange)] 01471 HRESULT RemoteOnDataChange( 01472 [in, unique] FORMATETC *pFormatetc, 01473 [in, unique] ASYNC_STGMEDIUM *pStgmed); 01474 01475 [local] 01476 void OnViewChange( 01477 [in] DWORD dwAspect, 01478 [in] LONG lindex); 01479 01480 [call_as(OnViewChange)] 01481 HRESULT RemoteOnViewChange( 01482 [in] DWORD dwAspect, 01483 [in] LONG lindex); 01484 01485 [local] 01486 void OnRename( 01487 [in] IMoniker *pmk); 01488 01489 [call_as(OnRename)] 01490 HRESULT RemoteOnRename( 01491 [in] IMoniker *pmk); 01492 01493 [local] 01494 void OnSave(); 01495 01496 [call_as(OnSave)] 01497 HRESULT RemoteOnSave(); 01498 01499 [local] 01500 void OnClose(); 01501 01502 [call_as(OnClose)] 01503 HRESULT RemoteOnClose(); 01504 } 01505 01506 [ 01507 object, 01508 uuid(00000125-0000-0000-C000-000000000046), 01509 pointer_default(unique) 01510 ] 01511 interface IAdviseSink2 : IAdviseSink 01512 { 01513 typedef [unique] IAdviseSink2 *LPADVISESINK2; 01514 01515 [local] 01516 void OnLinkSrcChange( 01517 [in, unique] IMoniker *pmk); 01518 01519 [call_as(OnLinkSrcChange)] 01520 HRESULT RemoteOnLinkSrcChange( 01521 [in, unique] IMoniker *pmk); 01522 } 01523 01524 [ 01525 object, 01526 uuid(0000010e-0000-0000-C000-000000000046), 01527 pointer_default(unique) 01528 ] 01529 interface IDataObject : IUnknown 01530 { 01531 typedef [unique] IDataObject *LPDATAOBJECT; 01532 01533 typedef enum tagDATADIR { 01534 DATADIR_GET = 1, 01535 DATADIR_SET = 2 01536 } DATADIR; 01537 01538 [local] 01539 HRESULT GetData( 01540 [in, unique] FORMATETC *pformatetcIn, 01541 [out] STGMEDIUM *pmedium); 01542 01543 [call_as(GetData)] 01544 HRESULT RemoteGetData( 01545 [in, unique] FORMATETC *pformatetcIn, 01546 [out] STGMEDIUM *pRemoteMedium); 01547 01548 [local] 01549 HRESULT GetDataHere( 01550 [in, unique] FORMATETC *pformatetc, 01551 [in, out] STGMEDIUM *pmedium); 01552 01553 [call_as(GetDataHere)] 01554 HRESULT RemoteGetDataHere( 01555 [in, unique] FORMATETC *pformatetc, 01556 [in, out] STGMEDIUM *pRemoteMedium); 01557 01558 HRESULT QueryGetData( 01559 [in, unique] FORMATETC *pformatetc); 01560 01561 HRESULT GetCanonicalFormatEtc( 01562 [in, unique] FORMATETC *pformatectIn, 01563 [out] FORMATETC *pformatetcOut); 01564 01565 [local] 01566 HRESULT SetData( 01567 [in, unique] FORMATETC *pformatetc, 01568 [in, unique] STGMEDIUM *pmedium, 01569 [in] BOOL fRelease); 01570 01571 [call_as(SetData)] 01572 HRESULT RemoteSetData( 01573 [in, unique] FORMATETC *pformatetc, 01574 [in, unique] FLAG_STGMEDIUM *pmedium, 01575 [in] BOOL fRelease); 01576 01577 HRESULT EnumFormatEtc( 01578 [in] DWORD dwDirection, 01579 [out] IEnumFORMATETC **ppenumFormatEtc); 01580 01581 HRESULT DAdvise( 01582 [in] FORMATETC *pformatetc, 01583 [in] DWORD advf, 01584 [in, unique] IAdviseSink *pAdvSink, 01585 [out] DWORD *pdwConnection); 01586 01587 HRESULT DUnadvise( 01588 [in] DWORD dwConnection); 01589 01590 HRESULT EnumDAdvise( 01591 [out] IEnumSTATDATA **ppenumAdvise); 01592 } 01593 01594 [ 01595 local, 01596 object, 01597 uuid(00000110-0000-0000-C000-000000000046) 01598 ] 01599 interface IDataAdviseHolder : IUnknown 01600 { 01601 typedef [unique] IDataAdviseHolder *LPDATAADVISEHOLDER; 01602 01603 HRESULT Advise( 01604 [in, unique] IDataObject *pDataObject, 01605 [in, unique] FORMATETC *pFetc, 01606 [in] DWORD advf, 01607 [in, unique] IAdviseSink *pAdvise, 01608 [out] DWORD *pdwConnection); 01609 01610 HRESULT Unadvise( 01611 [in] DWORD dwConnection); 01612 01613 HRESULT EnumAdvise( 01614 [out] IEnumSTATDATA **ppenumAdvise); 01615 01616 HRESULT SendOnDataChange( 01617 [in, unique] IDataObject *pDataObject, 01618 [in] DWORD dwReserved, 01619 [in] DWORD advf); 01620 } 01621 01622 /******************** Remoting ********************/ 01623 01624 [ 01625 local, 01626 object, 01627 uuid(00000016-0000-0000-C000-000000000046) 01628 ] 01629 interface IMessageFilter : IUnknown 01630 { 01631 typedef [unique] IMessageFilter *LPMESSAGEFILTER; 01632 01633 typedef enum tagCALLTYPE { 01634 CALLTYPE_TOPLEVEL = 1, 01635 CALLTYPE_NESTED = 2, 01636 CALLTYPE_ASYNC = 3, 01637 CALLTYPE_TOPLEVEL_CALLPENDING = 4, 01638 CALLTYPE_ASYNC_CALLPENDING = 5 01639 } CALLTYPE; 01640 01641 typedef enum tagSERVERCALL { 01642 SERVERCALL_ISHANDLED = 0, 01643 SERVERCALL_REJECTED = 1, 01644 SERVERCALL_RETRYLATER = 2 01645 } SERVERCALL; 01646 01647 typedef enum tagPENDINGTYPE { 01648 PENDINGTYPE_TOPLEVEL = 1, 01649 PENDINGTYPE_NESTED = 2 01650 } PENDINGTYPE; 01651 01652 typedef enum tagPENDINGMSG { 01653 PENDINGMSG_CANCELCALL = 0, 01654 PENDINGMSG_WAITNOPROCESS = 1, 01655 PENDINGMSG_WAITDEFPROCESS = 2 01656 } PENDINGMSG; 01657 01658 typedef struct tagINTERFACEINFO { 01659 IUnknown *pUnk; 01660 IID iid; 01661 WORD wMethod; 01662 } INTERFACEINFO, *LPINTERFACEINFO; 01663 01664 DWORD HandleInComingCall( 01665 [in] DWORD dwCallType, 01666 [in] HTASK htaskCaller, 01667 [in] DWORD dwTickCount, 01668 [in] LPINTERFACEINFO lpInterfaceInfo); 01669 01670 DWORD RetryRejectedCall( 01671 [in] HTASK htaskCallee, 01672 [in] DWORD dwTickCount, 01673 [in] DWORD dwRejectType); 01674 01675 DWORD MessagePending( 01676 [in] HTASK htaskCallee, 01677 [in] DWORD dwTickCount, 01678 [in] DWORD dwPendingType); 01679 } 01680 01681 [ 01682 local, 01683 object, 01684 uuid(D5F56B60-593B-101A-B569-08002B2DBF7A) 01685 ] 01686 interface IRpcChannelBuffer : IUnknown 01687 { 01688 typedef [unique] IRpcChannelBuffer *LPRPCCHANNELBUFFER; 01689 01690 typedef unsigned long RPCOLEDATAREP; 01691 01692 typedef struct tagRPCOLEMESSAGE { 01693 void *reserved1; 01694 RPCOLEDATAREP dataRepresentation; 01695 void *Buffer; 01696 ULONG cbBuffer; 01697 ULONG iMethod; 01698 void *reserved2[5]; 01699 ULONG rpcFlags; 01700 } RPCOLEMESSAGE; 01701 01702 typedef RPCOLEMESSAGE *PRPCOLEMESSAGE; 01703 01704 HRESULT GetBuffer( 01705 [in] RPCOLEMESSAGE *pMessage, 01706 [in] REFIID riid); 01707 01708 HRESULT SendReceive( 01709 [in,out] RPCOLEMESSAGE *pMessage, 01710 [out] ULONG *pStatus); 01711 01712 HRESULT FreeBuffer( 01713 [in] RPCOLEMESSAGE *pMessage); 01714 01715 HRESULT GetDestCtx( 01716 [out] DWORD *pdwDestContext, 01717 [out] void **ppvDestContext); 01718 01719 HRESULT IsConnected(); 01720 } 01721 01722 [ 01723 local, 01724 object, 01725 uuid(594f31d0-7f19-11d0-b194-00a0c90dc8bf) 01726 ] 01727 interface IRpcChannelBuffer2 : IRpcChannelBuffer 01728 { 01729 typedef [unique] IRpcChannelBuffer2 *LPRPCCHANNELBUFFER2; 01730 01731 HRESULT GetProtocolVersion( 01732 [in,out] DWORD *pdwVersion); 01733 } 01734 01735 [ 01736 local, 01737 object, 01738 uuid(25B15600-0115-11d0-BF0D-00AA00B8DFD2) 01739 ] 01740 interface IRpcChannelBuffer3 : IRpcChannelBuffer2 01741 { 01742 typedef [unique] IRpcChannelBuffer3 *LPRPCCHANNELBUFFER3; 01743 01744 HRESULT Send( 01745 [in,out] RPCOLEMESSAGE *pMsg, 01746 [out] ULONG *pulStatus); 01747 01748 HRESULT Receive( 01749 [in,out] RPCOLEMESSAGE *pMsg, 01750 [in] ULONG ulSize, 01751 [out] ULONG *pulStatus); 01752 01753 HRESULT Cancel( 01754 [in] RPCOLEMESSAGE *pMsg); 01755 01756 HRESULT GetCallContext( 01757 [in] RPCOLEMESSAGE *pMsg, 01758 [in] REFIID riid, 01759 [out] void **pInterface); 01760 01761 HRESULT GetDestCtxEx( 01762 [in] RPCOLEMESSAGE *pMsg, 01763 [out] DWORD *pdwDestContext, 01764 [out] void **ppvDestContext); 01765 01766 HRESULT GetState( 01767 [in] RPCOLEMESSAGE *pMsg, 01768 [out] DWORD *pState); 01769 01770 HRESULT RegisterAsync( 01771 [in] RPCOLEMESSAGE *pMsg, 01772 [in] IAsyncManager *pAsyncMgr); 01773 } 01774 01775 [ 01776 local, 01777 object, 01778 uuid(a5029fb6-3c34-11d1-9c99-00c04fb998aa), 01779 pointer_default(unique) 01780 ] 01781 interface IAsyncRpcChannelBuffer : IRpcChannelBuffer2 01782 { 01783 HRESULT Send( 01784 [in, out] RPCOLEMESSAGE *pMsg, 01785 [in] ISynchronize *pSync, 01786 [out] ULONG *pulStatus); 01787 01788 HRESULT Receive( 01789 [in, out] RPCOLEMESSAGE *pMsg, 01790 [out] ULONG *pulStatus); 01791 01792 HRESULT GetDestCtxEx( 01793 [in] RPCOLEMESSAGE *pMsg, 01794 [out] DWORD *pdwDestContext, 01795 [out] void **ppvDestContext); 01796 } 01797 01798 [ 01799 local, 01800 object, 01801 uuid(58a08519-24c8-4935-b482-3fd823333a4f) 01802 ] 01803 interface IRpcSyntaxNegotiate : IUnknown 01804 { 01805 HRESULT NegotiateSyntax( 01806 [in, out] RPCOLEMESSAGE *pMsg); 01807 } 01808 01809 [ 01810 local, 01811 object, 01812 uuid(D5F56A34-593B-101A-B569-08002B2DBF7A) 01813 ] 01814 interface IRpcProxyBuffer : IUnknown 01815 { 01816 typedef [unique] IRpcProxyBuffer *LPRPCPROXYBUFFER; 01817 01818 HRESULT Connect( 01819 [in, unique] IRpcChannelBuffer *pRpcChannelBuffer); 01820 01821 void Disconnect(); 01822 } 01823 01824 [ 01825 local, 01826 object, 01827 uuid(D5F56AFC-593B-101A-B569-08002B2DBF7A) 01828 ] 01829 interface IRpcStubBuffer : IUnknown 01830 { 01831 typedef [unique] IRpcStubBuffer *LPRPCSTUBBUFFER; 01832 01833 HRESULT Connect( 01834 [in] IUnknown *pUnkServer); 01835 01836 void Disconnect(); 01837 01838 HRESULT Invoke( 01839 [in] RPCOLEMESSAGE *_prpcmsg, 01840 [in] IRpcChannelBuffer *_pRpcChannelBuffer); 01841 01842 IRpcStubBuffer *IsIIDSupported( 01843 [in] REFIID riid); 01844 01845 ULONG CountRefs(); 01846 01847 HRESULT DebugServerQueryInterface( 01848 void **ppv); 01849 01850 void DebugServerRelease( 01851 void *pv); 01852 } 01853 01854 [ 01855 local, 01856 object, 01857 uuid(D5F569D0-593B-101A-B569-08002B2DBF7A) 01858 ] 01859 interface IPSFactoryBuffer : IUnknown 01860 { 01861 typedef [unique] IPSFactoryBuffer *LPPSFACTORYBUFFER; 01862 01863 HRESULT CreateProxy( 01864 [in] IUnknown *pUnkOuter, 01865 [in] REFIID riid, 01866 [out] IRpcProxyBuffer **ppProxy, 01867 [out] void **ppv); 01868 01869 HRESULT CreateStub( 01870 [in] REFIID riid, 01871 [in, unique] IUnknown *pUnkServer, 01872 [out] IRpcStubBuffer **ppStub); 01873 } 01874 01875 [ 01876 local, 01877 object, 01878 uuid(1008c4a0-7613-11cf-9af1-0020af6e72f4) 01879 ] 01880 interface IChannelHook : IUnknown 01881 { 01882 typedef [unique] IChannelHook *LPCHANNELHOOK; 01883 01884 typedef struct SChannelHookCallInfo { 01885 IID iid; 01886 DWORD cbSize; 01887 GUID uCausality; 01888 DWORD dwServerPid; 01889 DWORD iMethod; 01890 void *pObject; 01891 } SChannelHookCallInfo; 01892 01893 void ClientGetSize( 01894 [in] REFGUID uExtent, 01895 [in] REFIID riid, 01896 [out] ULONG *pDataSize); 01897 01898 void ClientFillBuffer( 01899 [in] REFGUID uExtent, 01900 [in] REFIID riid, 01901 [in, out] ULONG *pDataSize, 01902 [in] void *pDataBuffer); 01903 01904 void ClientNotify( 01905 [in] REFGUID uExtent, 01906 [in] REFIID riid, 01907 [in] ULONG cbDataSize, 01908 [in] void *pDataBuffer, 01909 [in] DWORD lDataRep, 01910 [in] HRESULT hrFault); 01911 01912 void ServerNotify( 01913 [in] REFGUID uExtent, 01914 [in] REFIID riid, 01915 [in] ULONG cbDataSize, 01916 [in] void *pDataBuffer, 01917 [in] DWORD lDataRep); 01918 01919 void ServerGetSize( 01920 [in] REFGUID uExtent, 01921 [in] REFIID riid, 01922 [in] HRESULT hrFault, 01923 [out] ULONG *pDataSize); 01924 01925 void ServerFillBuffer( 01926 [in] REFGUID uExtent, 01927 [in] REFIID riid, 01928 [in, out] ULONG *pDataSize, 01929 [in] void *pDataBuffer, 01930 [in] HRESULT hrFault ); 01931 } 01932 01933 extern const FMTID FMTID_SummaryInformation; 01934 extern const FMTID FMTID_DocSummaryInformation; 01935 extern const FMTID FMTID_UserDefinedProperties; 01936 01937 01938 /******************** Connection Points ********************/ 01939 /* FIXME */ 01940 01941 /******************** DCOM ********************/ 01942 01943 [ 01944 local, 01945 object, 01946 uuid(0000013D-0000-0000-C000-000000000046) 01947 ] 01948 interface IClientSecurity : IUnknown 01949 { 01950 typedef struct tagSOLE_AUTHENTICATION_SERVICE { 01951 DWORD dwAuthnSvc; 01952 DWORD dwAuthzSvc; 01953 OLECHAR *pPrincipalName; 01954 HRESULT hr; 01955 } SOLE_AUTHENTICATION_SERVICE; 01956 01957 typedef SOLE_AUTHENTICATION_SERVICE *PSOLE_AUTHENTICATION_SERVICE; 01958 01959 typedef struct tagSOLE_AUTHENTICATION_INFO { 01960 DWORD dwAuthnSvc; 01961 DWORD dwAuthzSvc; 01962 void *pAuthInfo; 01963 } SOLE_AUTHENTICATION_INFO; 01964 01965 const OLECHAR *COLE_DEFAULT_PRINCIPAL = (OLECHAR*) -1; 01966 const void *COLE_DEFAULT_AUTHINFO = (void*) -1; 01967 01968 typedef struct tagSOLE_AUTHENTICATION_LIST { 01969 DWORD cAuthInfo; 01970 SOLE_AUTHENTICATION_INFO *aAuthInfo; 01971 } SOLE_AUTHENTICATION_LIST; 01972 01973 typedef enum tagEOLE_AUTHENTICATION_CAPABILITIES { 01974 EOAC_NONE = 0x0, 01975 EOAC_MUTUAL_AUTH = 0x1, 01976 EOAC_SECURE_REFS = 0x2, /* CoInitializeSecurity only */ 01977 EOAC_ACCESS_CONTROL = 0x4, /* CoInitializeSecurity only */ 01978 EOAC_APPID = 0x8, /* CoInitializeSecurity only */ 01979 EOAC_DYNAMIC = 0x10, /* CoInitializeSecurity only */ 01980 EOAC_STATIC_CLOAKING = 0x20, 01981 EOAC_DYNAMIC_CLOAKING = 0x40, 01982 EOAC_ANY_AUTHORITY = 0x80, 01983 EOAC_MAKE_FULLSIC = 0x100, 01984 EOAC_REQUIRE_FULLSIC = 0x200, /* CoInitializeSecurity only */ 01985 EOAC_AUTO_IMPERSONATE = 0x400, /* CoInitializeSecurity only */ 01986 EOAC_DEFAULT = 0x800, 01987 EOAC_DISABLE_AAA = 0x1000, /* CoInitializeSecurity only */ 01988 EOAC_NO_CUSTOM_MARSHAL = 0x2000, /* CoInitializeSecurity only */ 01989 } EOLE_AUTHENTICATION_CAPABILITIES; 01990 01991 HRESULT QueryBlanket( 01992 [in] IUnknown *pProxy, 01993 [out] DWORD *pAuthnSvc, 01994 [out] DWORD *pAuthzSvc, 01995 [out] OLECHAR **pServerPrincName, 01996 [out] DWORD *pAuthnLevel, 01997 [out] DWORD *pImpLevel, 01998 [out] void **pAuthInfo, 01999 [out] DWORD *pCapabilities); 02000 02001 HRESULT SetBlanket( 02002 [in] IUnknown *pProxy, 02003 [in] DWORD AuthnSvc, 02004 [in] DWORD AuthzSvc, 02005 [in] OLECHAR *pServerPrincName, 02006 [in] DWORD AuthnLevel, 02007 [in] DWORD ImpLevel, 02008 [in] void *pAuthInfo, 02009 [in] DWORD Capabilities); 02010 02011 HRESULT CopyProxy( 02012 [in] IUnknown *pProxy, 02013 [out] IUnknown **ppCopy); 02014 } 02015 02016 [ 02017 local, 02018 object, 02019 uuid(0000013E-0000-0000-C000-000000000046) 02020 ] 02021 interface IServerSecurity : IUnknown 02022 { 02023 HRESULT QueryBlanket( 02024 [out] DWORD *pAuthnSvc, 02025 [out] DWORD *pAuthzSvc, 02026 [out] OLECHAR **pServerPrincName, 02027 [out] DWORD *pAuthnLevel, 02028 [out] DWORD *pImpLevel, 02029 [out] void **pPrivs, 02030 [out] DWORD *pCapabilities); 02031 02032 HRESULT ImpersonateClient(); 02033 02034 HRESULT RevertToSelf(); 02035 02036 BOOL IsImpersonating(); 02037 } 02038 02039 [ 02040 local, 02041 object, 02042 uuid(00000024-0000-0000-C000-000000000046) 02043 ] 02044 interface IAsyncSetup : IUnknown 02045 { 02046 HRESULT GetAsyncManager( 02047 [in] REFIID riid, 02048 [in] IUnknown *pOuter, 02049 [in] DWORD dwFlags, 02050 [out] IUnknown **ppInner, 02051 [out] IAsyncManager **ppAsyncMgr); 02052 } 02053 02054 [ 02055 object, 02056 uuid(0e6d4d92-6738-11cf-9608-00aa00680db4) 02057 ] 02058 interface IDirectWriterLock : IUnknown 02059 { 02060 HRESULT WaitForWriteAccess( 02061 [in] DWORD dwTimeout); 02062 02063 HRESULT ReleaseWriteAccess(); 02064 02065 HRESULT HaveWriteAccess(); 02066 } 02067 02068 [ 02069 object, 02070 uuid(00000030-0000-0000-C000-000000000046) 02071 ] 02072 02073 interface ISynchronize : IUnknown 02074 { 02075 HRESULT Wait( 02076 [in] DWORD dwFlags, 02077 [in] DWORD dwMilliseconds); 02078 02079 HRESULT Signal(); 02080 02081 HRESULT Reset(); 02082 } 02083 02084 02085 [ 02086 local, 02087 object, 02088 uuid(00000031-0000-0000-C000-000000000046) 02089 ] 02090 interface ISynchronizeHandle : IUnknown 02091 { 02092 HRESULT GetHandle( 02093 [out] HANDLE *ph); 02094 } 02095 02096 02097 [ 02098 local, 02099 object, 02100 uuid(00000032-0000-0000-C000-000000000046) 02101 ] 02102 interface ISynchronizeEvent : ISynchronizeHandle 02103 { 02104 HRESULT SetEventHandle( 02105 [in] HANDLE *ph); 02106 } 02107 02108 02109 [ 02110 local, 02111 object, 02112 uuid(00000033-0000-0000-C000-000000000046) 02113 ] 02114 interface ISynchronizeContainer : IUnknown 02115 { 02116 HRESULT AddSynchronize( 02117 [in] ISynchronize *pSync); 02118 02119 HRESULT WaitMultiple( 02120 [in] DWORD dwFlags, 02121 [in] DWORD dwTimeOut, 02122 [out] ISynchronize **ppSync); 02123 } 02124 02125 [ 02126 local, 02127 object, 02128 uuid(00000025-0000-0000-C000-000000000046) 02129 ] 02130 interface ISynchronizeMutex : ISynchronize 02131 { 02132 HRESULT ReleaseMutex(); 02133 } 02134 02135 [ 02136 local, 02137 object, 02138 uuid(00000029-0000-0000-C000-000000000046) 02139 ] 02140 02141 interface ICancelMethodCalls : IUnknown 02142 { 02143 typedef [unique] ICancelMethodCalls *LPCANCELMETHODCALLS; 02144 02145 HRESULT Cancel( 02146 [in] ULONG ulSeconds); 02147 02148 HRESULT TestCancel(); 02149 } 02150 02151 [ 02152 local, 02153 object, 02154 uuid(0000002A-0000-0000-C000-000000000046) 02155 ] 02156 interface IAsyncManager : IUnknown 02157 { 02158 typedef enum tagDCOM_CALL_STATE { 02159 DCOM_NONE = 0, 02160 DCOM_CALL_COMPLETE = 1, 02161 DCOM_CALL_CANCELED = 2 02162 } DCOM_CALL_STATE; 02163 02164 HRESULT CompleteCall( 02165 [in] HRESULT Result); 02166 02167 HRESULT GetCallContext( 02168 [in] REFIID riid, 02169 [out] void **pInterface); 02170 02171 HRESULT GetState( 02172 [out] ULONG *pulStateFlags); 02173 } 02174 02175 [ 02176 local, 02177 object, 02178 uuid(1c733a30-2a1c-11ce-ade5-00aa0044773d), 02179 pointer_default(unique) 02180 ] 02181 interface ICallFactory : IUnknown 02182 { 02183 HRESULT CreateCall( 02184 [in] REFIID riid, 02185 [in] IUnknown *pCtrlUnk, 02186 [in] REFIID riid2, 02187 [out, iid_is(riid2)] IUnknown **ppv); 02188 } 02189 02190 [ 02191 local, 02192 object, 02193 uuid(00000144-0000-0000-C000-000000000046) 02194 ] 02195 interface IRpcOptions : IUnknown 02196 { 02197 HRESULT Set( 02198 [in] IUnknown *pPrx, 02199 [in] DWORD dwProperty, 02200 [in] ULONG_PTR dwValue); 02201 02202 HRESULT Query( 02203 [in] IUnknown *pPrx, 02204 [in] DWORD dwProperty, 02205 [out] ULONG_PTR *pdwValue); 02206 } 02207 02208 enum { 02209 COMBND_RPCTIMEOUT = 1, 02210 COMBND_SERVER_LOCALITY = 2 02211 }; 02212 02213 enum { 02214 SERVER_LOCALITY_PROCESS_LOCAL = 0, 02215 SERVER_LOCALITY_MACHINE_LOCAL = 1, 02216 SERVER_LOCALITY_REMOTE = 2 02217 }; 02218 02219 [ 02220 local, 02221 object, 02222 uuid(00000149-0000-0000-C000-000000000046), 02223 pointer_default(unique) 02224 ] 02225 interface IRpcHelper : IUnknown 02226 { 02227 HRESULT GetDCOMProtocolVersion( 02228 [out] DWORD *pComVersion); 02229 02230 HRESULT GetIIDFromOBJREF( 02231 [in] void *pObjRef, 02232 [out] IID **piid); 02233 } 02234 02235 [ 02236 local, 02237 object, 02238 uuid(eb0cb9e8-7996-11d2-872e-0000f8080859) 02239 ] 02240 interface IReleaseMarshalBuffers : IUnknown 02241 { 02242 HRESULT ReleaseMarshalBuffer( 02243 [in] RPCOLEMESSAGE *pMsg, 02244 [in] DWORD dwFlags, 02245 [in, unique] IUnknown *pChnl); 02246 } 02247 02248 [ 02249 local, 02250 object, 02251 uuid(0000002B-0000-0000-C000-000000000046) 02252 ] 02253 interface IWaitMultiple : IUnknown 02254 { 02255 HRESULT WaitMultiple( 02256 [in] DWORD timeout, 02257 [out] ISynchronize **pSync); 02258 HRESULT AddSynchronize( 02259 [in] ISynchronize *pSync); 02260 } 02261 02262 02263 [ 02264 object, 02265 uuid(00000026-0000-0000-C000-000000000046) 02266 ] 02267 interface IUrlMon : IUnknown 02268 { 02269 HRESULT AsyncGetClassBits( 02270 [in] REFCLSID rclsid, 02271 [in, unique] LPCWSTR pszTYPE, 02272 [in, unique] LPCWSTR pszExt, 02273 [in] DWORD dwFileVersionMS, 02274 [in] DWORD dwFileVersionLS, 02275 [in, unique] LPCWSTR pszCodeBase, 02276 [in] IBindCtx *pbc, 02277 [in] DWORD dwClassContext, 02278 [in] REFIID riid, 02279 [in] DWORD flags); 02280 } 02281 02282 [ 02283 local, 02284 object, 02285 uuid(00000145-0000-0000-C000-000000000046) 02286 ] 02287 interface IForegroundTransfer : IUnknown 02288 { 02289 HRESULT AllowForegroundTransfer( 02290 [in] void *lpvReserved); 02291 } 02292 02293 [ 02294 local, 02295 object, 02296 uuid(00000147-0000-0000-C000-000000000046) 02297 ] 02298 interface IAddrTrackingControl : IUnknown 02299 { 02300 typedef [unique] IAddrTrackingControl *LPADDRTRACKINGCONTROL; 02301 02302 HRESULT EnableCOMDynamicAddrTracking(); 02303 HRESULT DisableCOMDynamicAddrTracking(); 02304 } 02305 02306 [ 02307 local, 02308 object, 02309 uuid(00000148-0000-0000-C000-000000000046) 02310 ] 02311 interface IAddrExclusionControl : IUnknown 02312 { 02313 typedef [unique] IAddrExclusionControl *LPADDREXCLUSIONCONTROL; 02314 02315 HRESULT GetCurrentAddrExclusionList( 02316 [in] REFIID riid, 02317 [out, iid_is(riid)] void **ppEnumerator); 02318 HRESULT UpdateAddrExclusionList( 02319 [in] IUnknown *pEnumerator); 02320 } 02321 02322 typedef enum _APTTYPE { 02323 APTTYPE_CURRENT = -1, 02324 APTTYPE_STA = 0, 02325 APTTYPE_MTA = 1, 02326 APTTYPE_NA = 2, 02327 APTTYPE_MAINSTA = 3 02328 } APTTYPE; 02329 02330 typedef enum _THDTYPE { 02331 THDTYPE_BLOCKMESSAGES = 0, 02332 THDTYPE_PROCESSMESSAGES = 1 02333 } THDTYPE; 02334 02335 [ 02336 local, 02337 object, 02338 uuid(000001ce-0000-0000-C000-000000000046), 02339 pointer_default(unique) 02340 ] 02341 interface IComThreadingInfo : IUnknown 02342 { 02343 HRESULT GetCurrentApartmentType( 02344 [out] APTTYPE *pAptType); 02345 HRESULT GetCurrentThreadType( 02346 [out] THDTYPE *pThreadType); 02347 HRESULT GetCurrentLogicalThreadId( 02348 [out] GUID *pguidLogicalThreadId); 02349 HRESULT SetCurrentLogicalThreadId( 02350 [in] REFGUID rguid); 02351 } 02352 02353 02354 [ 02355 object, 02356 pointer_default(unique), 02357 uuid(72380d55-8d2b-43a3-8513-2b6ef31434e9) 02358 ] 02359 interface IProcessInitControl : IUnknown 02360 { 02361 HRESULT ResetInitializerTimeout( 02362 [in] DWORD dwSecondsRemaining); 02363 } 02364 02365 [ 02366 local, 02367 object, 02368 uuid(00000034-0000-0000-C000-000000000046), 02369 pointer_default(unique) 02370 ] 02371 interface IInitializeSpy : IUnknown 02372 { 02373 typedef [unique] IInitializeSpy *LPINITIALIZESPY; 02374 02375 HRESULT PreInitialize( 02376 [in] DWORD dwCoInit, 02377 [in] DWORD dwCurThreadAptRefs); 02378 02379 HRESULT PostInitialize( 02380 [in] HRESULT hrCoInit, 02381 [in] DWORD dwCoInit, 02382 [in] DWORD dwNewThreadAptRefs); 02383 02384 HRESULT PreUninitialize( 02385 [in] DWORD dwCurThreadAptRefs); 02386 02387 HRESULT PostUninitialize( 02388 [in] DWORD dwNewThreadAptRefs); 02389 } 02390 02391 [ 02392 object, 02393 uuid(969dc708-5c76-11d1-8d86-0000f804b057) 02394 ] 02395 interface IThumbnailExtractor : IUnknown 02396 { 02397 HRESULT ExtractThumbnail( 02398 [in] IStorage *pStg, 02399 [in] ULONG ulLength, 02400 [in] ULONG ulHeight, 02401 [out] ULONG *pulOutputLength, 02402 [out] ULONG *pulOutputHeight, 02403 [out] HBITMAP *phOutputBitmap); 02404 02405 02406 HRESULT OnFileUpdated( 02407 [in] IStorage *pStg); 02408 } 02409 02410 02411 cpp_quote("#ifdef USE_COM_CONTEXT_DEF") 02412 02413 typedef DWORD CPFLAGS; 02414 02415 typedef struct tagContextProperty 02416 { 02417 GUID policyId; 02418 CPFLAGS flags; 02419 [unique] IUnknown *pUnk; 02420 } ContextProperty; 02421 02422 [ 02423 local, 02424 object, 02425 uuid(000001c1-0000-0000-C000-000000000046) 02426 ] 02427 interface IEnumContextProps : IUnknown 02428 { 02429 typedef [unique] IEnumContextProps *LPENUMCONTEXTPROPS; 02430 02431 HRESULT Next( 02432 [in] ULONG celt, 02433 [out, size_is(celt), length_is(*pceltFetched)] ContextProperty *pContextProperties, 02434 [out] ULONG *pceltFetched); 02435 02436 HRESULT Skip( 02437 [in] ULONG celt); 02438 02439 HRESULT Reset(); 02440 02441 HRESULT Clone( 02442 [out] IEnumContextProps **ppEnumContextProps); 02443 02444 HRESULT Count( 02445 [out] ULONG *pcelt); 02446 } 02447 02448 [ 02449 local, 02450 object, 02451 uuid(000001c0-0000-0000-C000-000000000046) 02452 ] 02453 interface IContext : IUnknown 02454 { 02455 HRESULT SetProperty( 02456 [in] REFGUID policyId, 02457 [in] CPFLAGS flags, 02458 [in] IUnknown *pUnk); 02459 02460 HRESULT RemoveProperty( 02461 [in] REFGUID policyId); 02462 02463 HRESULT GetProperty( 02464 [in] REFGUID guid, 02465 [out] CPFLAGS *pFlags, 02466 [out] IUnknown **ppUnk); 02467 02468 HRESULT EnumContextProps( 02469 [out] IEnumContextProps **ppEnumContextProps); 02470 } 02471 02472 [ 02473 local, 02474 object, 02475 uuid(000001c6-0000-0000-c000-000000000046), 02476 pointer_default(unique) 02477 ] 02478 interface IObjContext : IContext 02479 { 02480 void Reserved1(); 02481 void Reserved2(); 02482 void Reserved3(); 02483 void Reserved4(); 02484 void Reserved5(); 02485 void Reserved6(); 02486 void Reserved7(); 02487 } 02488 02489 cpp_quote("#endif /* defined USE_COM_CONTEXT_DEF */") Generated on Tue May 22 2012 04:36:17 for ReactOS by
1.7.6.1
|