123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944 |
- /*
- * Copyright 2002 Ove Kaaven
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
- import "unknwn.idl";
- interface IStream;
- interface IEnumString;
- interface IRunningObjectTable;
- interface IMoniker;
- interface IAdviseSink;
- interface IAsyncManager;
- /* FIXME: COSERVERINFO should be moved here from wtypes.idl */
- /******************** Fundamentals ********************/
- [
- local,
- object,
- uuid(00000003-0000-0000-C000-000000000046)
- ]
- interface IMarshal : IUnknown
- {
- typedef [unique] IMarshal *LPMARSHAL;
- HRESULT GetUnmarshalClass(
- [in] REFIID riid,
- [in, unique] void *pv,
- [in] DWORD dwDestContext,
- [in, unique] void *pvDestContext,
- [in] DWORD mshlflags,
- [out] CLSID *pCid);
- HRESULT GetMarshalSizeMax(
- [in] REFIID riid,
- [in, unique] void *pv,
- [in] DWORD dwDestContext,
- [in, unique] void *pvDestContext,
- [in] DWORD mshlflags,
- [out] DWORD *pSize);
- HRESULT MarshalInterface(
- [in, unique] IStream *pStm,
- [in] REFIID riid,
- [in, unique] void *pv,
- [in] DWORD dwDestContext,
- [in, unique] void *pvDestContext,
- [in] DWORD mshlflags);
- HRESULT UnmarshalInterface(
- [in, unique] IStream *pStm,
- [in] REFIID riid,
- [out] void **ppv);
- HRESULT ReleaseMarshalData(
- [in, unique] IStream *pStm);
- HRESULT DisconnectObject(
- [in] DWORD dwReserved);
- }
- [
- local,
- object,
- uuid(00000018-0000-0000-C000-000000000046)
- ]
- interface IStdMarshalInfo : IUnknown
- {
- typedef [unique] IStdMarshalInfo *LPSTDMARSHALINFO;
- HRESULT GetClassForHandler(
- [in] DWORD dwDestContext,
- [in, unique] void *pvDestContext,
- [out] CLSID *pClsid);
- }
- [
- local,
- object,
- uuid(00000019-0000-0000-C000-000000000046)
- ]
- interface IExternalConnection : IUnknown
- {
- typedef [unique] IExternalConnection *LPEXTERNALCONNECTION;
- typedef enum tagEXTCONN {
- EXTCONN_STRONG = 0x0001,
- EXTCONN_WEAK = 0x0002,
- EXTCONN_CALLABLE = 0x0004
- } EXTCONN;
- DWORD AddConnection(
- [in] DWORD extconn,
- [in] DWORD reserved);
- DWORD ReleaseConnection(
- [in] DWORD extconn,
- [in] DWORD reserved,
- [in] BOOL fLastReleaseCloses);
- }
- [
- local,
- object,
- uuid(00000020-0000-0000-C000-000000000046)
- ]
- interface IMultiQI : IUnknown
- {
- typedef [unique] IMultiQI *LPMULTIQI;
- typedef struct tagMULTI_QI {
- const IID *pIID;
- IUnknown *pItf;
- HRESULT hr;
- } MULTI_QI;
- HRESULT QueryMultipleInterfaces(
- [in] ULONG cMQIs,
- [in, out] MULTI_QI *pMQIs);
- }
- [
- local,
- object,
- uuid(00000002-0000-0000-C000-000000000046)
- ]
- interface IMalloc : IUnknown
- {
- typedef [unique] IMalloc *LPMALLOC;
- LPVOID Alloc(
- [in] ULONG cb);
- LPVOID Realloc(
- [in] LPVOID pv,
- [in] ULONG cb);
- void Free(
- [in] LPVOID pv);
- ULONG GetSize(
- [in] LPVOID pv);
- int DidAlloc(LPVOID pv);
- void HeapMinimize();
- }
- [
- local,
- object,
- uuid(0000001d-0000-0000-C000-000000000046)
- ]
- interface IMallocSpy : IUnknown
- {
- typedef [unique] IMallocSpy *LPMALLOCSPY;
- ULONG PreAlloc(
- [in] ULONG cbRequest);
- LPVOID PostAlloc(
- [in] LPVOID pActual);
- LPVOID PreFree(
- [in] LPVOID pRequest,
- [in] BOOL fSpyed);
- void PostFree(
- [in] BOOL fSpyed);
- ULONG PreRealloc(
- [in] LPVOID pRequest,
- [in] ULONG cbRequest,
- [out] LPVOID *ppNewRequest,
- [in] BOOL fSpyed);
- LPVOID PostRealloc(
- [in] LPVOID pActual,
- [in] BOOL fSpyed);
- LPVOID PreGetSize(
- [in] LPVOID pRequest,
- [in] BOOL fSpyed);
- ULONG PostGetSize(
- [in] ULONG cbActual,
- [in] BOOL fSpyed);
- LPVOID PreDidAlloc(
- [in] LPVOID pRequest,
- [in] BOOL fSpyed);
- int PostDidAlloc(
- [in] LPVOID pRequest,
- [in] BOOL fSpyed,
- [in] int fActual);
- void PreHeapMinimize();
- void PostHeapMinimize();
- }
- [
- local,
- object,
- uuid(00000021-0000-0000-C000-000000000046)
- ]
- interface IInternalUnknown : IUnknown
- {
- HRESULT QueryInternalInterface(
- [in] REFIID riid,
- [out] void **ppv);
- }
- [
- object,
- uuid(00000100-0000-0000-C000-000000000046),
- pointer_default(unique)
- ]
- interface IEnumUnknown : IUnknown
- {
- typedef [unique] IEnumUnknown *LPENUMUNKNOWN;
- [local]
- HRESULT Next(
- [in] ULONG celt,
- [out] IUnknown **rgelt,
- [out] ULONG *pceltFetched);
- [call_as(Next)]
- HRESULT RemoteNext(
- [in] ULONG celt,
- [out, size_is(celt), length_is(*pceltFetched)]
- IUnknown **rgelt,
- [out] ULONG *pceltFetched);
- HRESULT Skip(
- [in] ULONG celt);
- HRESULT Reset();
- HRESULT Clone(
- [out] IEnumUnknown **ppenum);
- }
- [
- object,
- uuid(00000022-0000-0000-C000-000000000046),
- version(1.0),
- pointer_default(unique)
- ]
- interface ISurrogate : IUnknown
- {
- typedef [unique] ISurrogate *LPSURROGATE;
- HRESULT LoadDllServer(
- [in] REFCLSID Clsid);
- HRESULT FreeSurrogate();
- }
- [
- local,
- object,
- uuid(00000146-0000-0000-C000-000000000046)
- ]
- interface IGlobalInterfaceTable : IUnknown
- {
- typedef [unique] IGlobalInterfaceTable *LPGLOBALINTERFACETABLE;
- HRESULT RegisterInterfaceInGlobal(
- [in] IUnknown *pUnk,
- [in] REFIID riid,
- [out] DWORD *pdwCookie);
- HRESULT RevokeInterfaceFromGlobal(
- [in] DWORD dwCookie);
- HRESULT GetInterfaceFromGlobal(
- [in] DWORD dwCookie,
- [in] REFIID riid,
- [out, iid_is(riid)] void **ppv);
- }
- /******************** Monikers ********************/
- [
- object,
- uuid(0000000e-0000-0000-C000-000000000046),
- pointer_default(unique)
- ]
- interface IBindCtx : IUnknown
- {
- typedef [unique] IBindCtx *LPBINDCTX;
- typedef [unique] IBindCtx *LPBC;
- typedef struct tagBIND_OPTS {
- DWORD cbStruct;
- DWORD grfFlags;
- DWORD grfMode;
- DWORD dwTickCountDeadline;
- } BIND_OPTS, *LPBIND_OPTS;
- /* FIXME: C++ crap */
- typedef struct tagBIND_OPTS2 {
- DWORD cbStruct;
- DWORD grfFlags;
- DWORD grfMode;
- DWORD dwTickCountDeadline;
- DWORD dwTrackFlags;
- DWORD dwClassContext;
- LCID locale;
- COSERVERINFO *pServerInfo;
- } BIND_OPTS2, *LPBIND_OPTS2;
- typedef enum tagBIND_FLAGS {
- BIND_MAYBOTHERUSER = 1,
- BIND_JUSTTESTEXISTENCE = 2
- } BIND_FLAGS;
- HRESULT RegisterObjectBound(
- [in, unique] IUnknown *punk);
- HRESULT RevokeObjectBound(
- [in, unique] IUnknown *punk);
- HRESULT ReleaseBoundObjects();
- [local]
- HRESULT SetBindOptions(
- [in] BIND_OPTS *pbindopts);
- [call_as(SetBindOptions)]
- HRESULT RemoteSetBindOptions(
- [in] BIND_OPTS2 *pbindopts);
- [local]
- HRESULT GetBindOptions(
- [in, out] BIND_OPTS *pbindopts);
- [call_as(GetBindOptions)]
- HRESULT RemoteGetBindOptions(
- [in, out] BIND_OPTS2 *pbindopts);
- HRESULT GetRunningObjectTable(
- [out] IRunningObjectTable **pprot);
- HRESULT RegisterObjectParam(
- [in] LPOLESTR pszKey,
- [in, unique] IUnknown *punk);
- HRESULT GetObjectParam(
- [in] LPOLESTR pszKey,
- [out] IUnknown **ppunk);
- HRESULT EnumObjectParam(
- [out] IEnumString **ppenum);
- HRESULT RevokeObjectParam(
- [in] LPOLESTR pszKey);
- }
- [
- object,
- uuid(00000102-0000-0000-C000-000000000046),
- pointer_default(unique)
- ]
- interface IEnumMoniker : IUnknown
- {
- typedef [unique] IEnumMoniker *LPENUMMONIKER;
- [local]
- HRESULT Next(
- [in] ULONG celt,
- [out, size_is(celt), length_is(*pceltFetched)]
- IMoniker **rgelt,
- [out] ULONG *pceltFetched);
- [call_as(Next)]
- HRESULT RemoteNext(
- [in] ULONG celt,
- [out, size_is(celt), length_is(*pceltFetched)]
- IMoniker **rgelt,
- [out] ULONG *pceltFetched);
- HRESULT Skip(
- [in] ULONG celt);
- HRESULT Reset();
- HRESULT Clone(
- [out] IEnumMoniker **ppenum);
- }
- [
- object,
- uuid(00000126-0000-0000-C000-000000000046)
- ]
- interface IRunnableObject : IUnknown
- {
- typedef [unique] IRunnableObject *LPRUNNABLEOBJECT;
- HRESULT GetRunningClass(
- [out] LPCLSID lpClsid);
- HRESULT Run(
- [in] LPBINDCTX pbc);
- [local]
- BOOL IsRunning();
- [call_as(IsRunning)]
- HRESULT RemoteIsRunning();
- HRESULT LockRunning(
- [in] BOOL fLock,
- [in] BOOL fLastUnlockCloses);
- HRESULT SetContainedObject(
- [in] BOOL fContained);
- }
- /* GetObject is defined in wingdi.h as WINELIB_NAME_AW(GetObject),
- * which resolves to a compilation failure if __WINESRC__ is defined,
- * but GetObject is used as a valid method name below, so we have
- * to undefine it if __WINESRC__ is defined */
- cpp_quote("#ifdef __WINESRC__")
- cpp_quote("#undef GetObject")
- cpp_quote("#endif")
- [
- object,
- uuid(00000010-0000-0000-C000-000000000046)
- ]
- interface IRunningObjectTable : IUnknown
- {
- typedef [unique] IRunningObjectTable *LPRUNNINGOBJECTTABLE;
- HRESULT Register(
- [in] DWORD grfFlags,
- [in, unique] IUnknown *punkObject,
- [in, unique] IMoniker *pmkObjectName,
- [out] DWORD *pdwRegister);
- HRESULT Revoke(
- [in] DWORD dwRegister);
- HRESULT IsRunning(
- [in, unique] IMoniker *pmkObjectName);
- HRESULT GetObject(
- [in, unique] IMoniker *pmkObjectName,
- [out] IUnknown **ppunkObject);
- HRESULT NoteChangeTime(
- [in] DWORD dwRegister,
- [in] FILETIME *pfiletime);
- HRESULT GetTimeOfLastChange(
- [in, unique] IMoniker *pmkObjectName,
- [out] FILETIME *pfiletime);
- HRESULT EnumRunning(
- [out] IEnumMoniker **ppenumMoniker);
- }
- [
- object,
- uuid(0000010c-0000-0000-C000-000000000046)
- ]
- interface IPersist : IUnknown
- {
- typedef [unique] IPersist *LPPERSIST;
- HRESULT GetClassID(
- [out] CLSID *pClassID);
- }
- [
- object,
- uuid(00000109-0000-0000-C000-000000000046),
- pointer_default(unique)
- ]
- interface IPersistStream : IPersist
- {
- typedef [unique] IPersistStream *LPPERSISTSTREAM;
- HRESULT IsDirty();
- HRESULT Load(
- [in, unique] IStream *pStm);
- HRESULT Save(
- [in, unique] IStream *pStm,
- [in] BOOL fClearDirty);
- HRESULT GetSizeMax(
- [out] ULARGE_INTEGER *pcbSize);
- }
- [
- object,
- uuid(0000000f-0000-0000-C000-000000000046),
- pointer_default(unique)
- ]
- interface IMoniker : IPersistStream
- {
- typedef [unique] IMoniker *LPMONIKER;
- typedef enum tagMKSYS {
- MKSYS_NONE = 0,
- MKSYS_GENERICCOMPOSITE = 1,
- MKSYS_FILEMONIKER = 2,
- MKSYS_ANTIMONIKER = 3,
- MKSYS_ITEMMONIKER = 4,
- MKSYS_POINTERMONIKER = 5,
- /* MKSYS_URLMONIKER = 6, */ /* defined in urlmon.idl */
- MKSYS_CLASSMONIKER = 7
- } MKSYS;
- typedef [v1_enum] enum tagMKREDUCE {
- MKRREDUCE_ONE = 3 << 16,
- MKRREDUCE_TOUSER = 2 << 16,
- MKRREDUCE_THROUGHUSER = 1 << 16,
- MKRREDUCE_ALL = 0
- } MKRREDUCE;
- [local]
- HRESULT BindToObject(
- [in, unique] IBindCtx *pbc,
- [in, unique] IMoniker *pmkToLeft,
- [in] REFIID riidResult,
- [out, iid_is(riidResult)] void **ppvResult);
- [call_as(BindToObject)]
- HRESULT RemoteBindToObject(
- [in, unique] IBindCtx *pbc,
- [in, unique] IMoniker *pmkToLeft,
- [in] REFIID riidResult,
- [out, iid_is(riidResult)] IUnknown **ppvResult);
- [local]
- HRESULT BindToStorage(
- [in, unique] IBindCtx *pbc,
- [in, unique] IMoniker *pmkToLeft,
- [in] REFIID riid,
- [out, iid_is(riid)] void **ppvObj);
- [call_as(BindToStorage)]
- HRESULT RemoteBindToStorage(
- [in, unique] IBindCtx *pbc,
- [in, unique] IMoniker *pmkToLeft,
- [in] REFIID riid,
- [out, iid_is(riid)] IUnknown **ppvObj);
- HRESULT Reduce(
- [in, unique] IBindCtx *pbc,
- [in] DWORD dwReduceHowFar,
- [in, out, unique] IMoniker **ppmkToLeft,
- [out] IMoniker **ppmkReduced);
- HRESULT ComposeWith(
- [in, unique] IMoniker *pmkRight,
- [in] BOOL fOnlyIfNotGeneric,
- [out] IMoniker **ppmkComposite);
- HRESULT Enum(
- [in] BOOL fForward,
- [out] IEnumMoniker **ppenumMoniker);
- HRESULT IsEqual(
- [in, unique] IMoniker *pmkOtherMoniker);
- HRESULT Hash(
- [out] DWORD *pdwHash);
- HRESULT IsRunning(
- [in, unique] IBindCtx *pbc,
- [in, unique] IMoniker *pmkToLeft,
- [in, unique] IMoniker *pmkNewlyRunning);
- HRESULT GetTimeOfLastChange(
- [in, unique] IBindCtx *pbc,
- [in, unique] IMoniker *pmkToLeft,
- [out] FILETIME *pFileTime);
- HRESULT Inverse(
- [out] IMoniker **ppmk);
- HRESULT CommonPrefixWith(
- [in, unique] IMoniker *pmkOther,
- [out] IMoniker **ppmkPrefix);
- HRESULT RelativePathTo(
- [in, unique] IMoniker *pmkOther,
- [out] IMoniker **ppmkRelPath);
- HRESULT GetDisplayName(
- [in, unique] IBindCtx *pbc,
- [in, unique] IMoniker *pmkToLeft,
- [out] LPOLESTR *ppszDisplayName);
- HRESULT ParseDisplayName(
- [in, unique] IBindCtx *pbc,
- [in, unique] IMoniker *pmkToLeft,
- [in] LPOLESTR pszDisplayName,
- [out] ULONG *pchEaten,
- [out] IMoniker **ppmkOut);
- HRESULT IsSystemMoniker(
- [out] DWORD *pdwMksys);
- }
- [
- object,
- uuid(f29f6bc0-5021-11ce-aa15-00006901293f),
- pointer_default(unique)
- ]
- interface IROTData : IUnknown
- {
- HRESULT GetComparisonData(
- [out, size_is(cbMax)] byte *pbData,
- [in] ULONG cbMax,
- [out] ULONG *pcbData);
- }
- [
- object,
- uuid(00000101-0000-0000-C000-000000000046),
- pointer_default(unique)
- ]
- interface IEnumString : IUnknown
- {
- typedef [unique] IEnumString *LPENUMSTRING;
- [local]
- HRESULT Next(
- [in] ULONG celt,
- [out, size_is(celt), length_is(*pceltFetched)]
- LPOLESTR *rgelt,
- [out] ULONG *pceltFetched);
- [call_as(Next)]
- HRESULT RemoteNext(
- [in] ULONG celt,
- [out, size_is(celt), length_is(*pceltFetched)]
- LPOLESTR *rgelt,
- [out] ULONG *pceltFetched);
- HRESULT Skip(
- [in] ULONG celt);
- HRESULT Reset();
- HRESULT Clone(
- [out] IEnumString **ppenum);
- }
- [
- object,
- uuid(00000140-0000-0000-C000-000000000046)
- ]
- interface IClassActivator : IUnknown
- {
- HRESULT GetClassObject(
- [in] REFCLSID rclsid,
- [in] DWORD dwClassContext,
- [in] LCID locale,
- [in] REFIID riid,
- [out, iid_is(riid)] void **ppv);
- }
- /******************** Storage ********************/
- [
- object,
- uuid(0c733a30-2a1c-11ce-ade5-00aa0044773d),
- pointer_default(unique)
- ]
- interface ISequentialStream : IUnknown
- {
- [local]
- HRESULT Read(
- [out, size_is(cb), length_is(*pcbRead)]
- void *pv,
- [in] ULONG cb,
- [out] ULONG *pcbRead);
- [call_as(Read)]
- HRESULT RemoteRead(
- [out, size_is(cb), length_is(*pcbRead)]
- byte *pv,
- [in] ULONG cb,
- [out] ULONG *pcbRead);
- [local]
- HRESULT Write(
- [in, size_is(cb)] const void *pv,
- [in] ULONG cb,
- [out] ULONG *pcbWritten);
- [call_as(Write)]
- HRESULT RemoteWrite(
- [in, size_is(cb)] const byte *pv,
- [in] ULONG cb,
- [out] ULONG *pcbWritten);
- }
- [
- object,
- uuid(0000000c-0000-0000-C000-000000000046),
- pointer_default(unique)
- ]
- interface IStream : ISequentialStream
- {
- typedef [unique] IStream *LPSTREAM;
- typedef struct tagSTATSTG {
- LPOLESTR pwcsName;
- DWORD type;
- ULARGE_INTEGER cbSize;
- FILETIME mtime;
- FILETIME ctime;
- FILETIME atime;
- DWORD grfMode;
- DWORD grfLocksSupported;
- CLSID clsid;
- DWORD grfStateBits;
- DWORD reserved;
- } STATSTG;
- typedef enum tagSTGTY {
- STGTY_STORAGE = 1,
- STGTY_STREAM = 2,
- STGTY_LOCKBYTES = 3,
- STGTY_PROPERTY = 4
- } STGTY;
- typedef enum tagSTREAM_SEEK {
- STREAM_SEEK_SET = 0,
- STREAM_SEEK_CUR = 1,
- STREAM_SEEK_END = 2
- } STREAM_SEEK;
- /* these are defined in Linux's fcntl.h,
- * undefine them to avoid conflicts */
- cpp_quote("#undef LOCK_MAND")
- cpp_quote("#undef LOCK_READ")
- cpp_quote("#undef LOCK_WRITE")
- cpp_quote("#undef LOCK_RW")
- typedef enum tagLOCKTYPE {
- LOCK_WRITE = 1,
- LOCK_EXCLUSIVE = 2,
- LOCK_ONLYONCE = 4
- } LOCKTYPE;
- [local]
- HRESULT Seek(
- [in] LARGE_INTEGER dlibMove,
- [in] DWORD dwOrigin,
- [out] ULARGE_INTEGER *plibNewPosition);
- [call_as(Seek)]
- HRESULT RemoteSeek(
- [in] LARGE_INTEGER dlibMove,
- [in] DWORD dwOrigin,
- [out] ULARGE_INTEGER *plibNewPosition);
- HRESULT SetSize(
- [in] ULARGE_INTEGER libNewSize);
- [local]
- HRESULT CopyTo(
- [in, unique] IStream *pstm,
- [in] ULARGE_INTEGER cb,
- [out] ULARGE_INTEGER *pcbRead,
- [out] ULARGE_INTEGER *pcbWritten);
- [call_as(CopyTo)]
- HRESULT RemoteCopyTo(
- [in, unique] IStream *pstm,
- [in] ULARGE_INTEGER cb,
- [out] ULARGE_INTEGER *pcbRead,
- [out] ULARGE_INTEGER *pcbWritten);
- HRESULT Commit(
- [in] DWORD grfCommitFlags);
- HRESULT Revert();
- HRESULT LockRegion(
- [in] ULARGE_INTEGER libOffset,
- [in] ULARGE_INTEGER cb,
- [in] DWORD dwLockType);
- HRESULT UnlockRegion(
- [in] ULARGE_INTEGER libOffset,
- [in] ULARGE_INTEGER cb,
- [in] DWORD dwLockType);
- HRESULT Stat(
- [out] STATSTG *pstatstg,
- [in] DWORD grfStatFlag);
- HRESULT Clone(
- [out] IStream **ppstm);
- }
- [
- object,
- uuid(0000000d-0000-0000-C000-000000000046),
- pointer_default(unique)
- ]
- interface IEnumSTATSTG : IUnknown
- {
- typedef [unique] IEnumSTATSTG *LPENUMSTATSTG;
- [local]
- HRESULT Next(
- [in] ULONG celt,
- [out, size_is(celt), length_is(*pceltFetched)]
- STATSTG *rgelt,
- [out] ULONG *pceltFetched);
- [call_as(Next)]
- HRESULT RemoteNext(
- [in] ULONG celt,
- [out, size_is(celt), length_is(*pceltFetched)]
- STATSTG *rgelt,
- [out] ULONG *pceltFetched);
- HRESULT Skip(
- [in] ULONG celt);
- HRESULT Reset();
- HRESULT Clone(
- [out] IEnumSTATSTG **ppenum);
- }
- [
- object,
- uuid(0000000b-0000-0000-C000-000000000046),
- pointer_default(unique)
- ]
- interface IStorage : IUnknown
- {
- typedef [unique] IStorage *LPSTORAGE;
- typedef struct tagRemSNB {
- unsigned long ulCntStr;
- unsigned long ulCntChar;
- [size_is(ulCntChar)] OLECHAR rgString[];
- } RemSNB;
- typedef [unique] RemSNB *wireSNB;
- typedef [wire_marshal(wireSNB)] OLECHAR **SNB;
- HRESULT CreateStream(
- [in] LPCOLESTR pwcsName,
- [in] DWORD grfMode,
- [in] DWORD reserved1,
- [in] DWORD reserved2,
- [out] IStream **ppstm);
- [local]
- HRESULT OpenStream(
- [in] LPCOLESTR pwcsName,
- [in, unique] void *reserved1,
- [in] DWORD grfMode,
- [in] DWORD reserved2,
- [out] IStream **ppstm);
- [call_as(OpenStream)]
- HRESULT RemoteOpenStream(
- [in] LPCOLESTR pwcsName,
- [in] unsigned long cbReserved1,
- [in, unique, size_is(cbReserved1)] byte *reserved1,
- [in] DWORD grfMode,
- [in] DWORD reserved2,
- [out] IStream **ppstm);
- HRESULT CreateStorage(
- [in] LPCOLESTR pwcsName,
- [in] DWORD grfMode,
- [in] DWORD dwStgFmt,
- [in] DWORD reserved2,
- [out] IStorage **ppstg);
- HRESULT OpenStorage(
- [in, unique] LPCOLESTR pwcsName,
- [in, unique] IStorage *pstgPriority,
- [in] DWORD grfMode,
- [in, unique] SNB snbExclude,
- [in] DWORD reserved,
- [out] IStorage **ppstg);
- HRESULT CopyTo(
- [in] DWORD ciidExclude,
- [in, unique, size_is(ciidExclude)] const IID *rgiidExclude,
- [in, unique] SNB snbExclude,
- [in, unique] IStorage *pstgDest);
- HRESULT MoveElementTo(
- [in] LPCOLESTR pwcsName,
- [in, unique] IStorage *pstgDest,
- [in] LPCOLESTR pwcsNewName,
- [in] DWORD grfFlags);
- HRESULT Commit(
- [in] DWORD grfCommitFlags);
- HRESULT Revert();
- [local]
- HRESULT EnumElements(
- [in] DWORD reserved1,
- [in, unique, size_is(1)] void *reserved2,
- [in] DWORD reserved3,
- [out] IEnumSTATSTG **ppenum);
- [call_as(EnumElements)]
- HRESULT RemoteEnumElements(
- [in] DWORD reserved1,
- [in] unsigned long cbReserved2,
- [in, unique, size_is(cbReserved2)] byte *reserved2,
- [in] DWORD reserved3,
- [out] IEnumSTATSTG **ppenum);
- HRESULT DestroyElement(
- [in] LPCOLESTR pwcsName);
- HRESULT RenameElement(
- [in] LPCOLESTR pwcsOldName,
- [in] LPCOLESTR pwcsNewName);
- HRESULT SetElementTimes(
- [in, unique] LPCOLESTR pwcsName,
- [in, unique] const FILETIME *pctime,
- [in, unique] const FILETIME *patime,
- [in, unique] const FILETIME *pmtime);
- HRESULT SetClass(
- [in] REFCLSID clsid);
- HRESULT SetStateBits(
- [in] DWORD grfStateBits,
- [in] DWORD grfMask);
- HRESULT Stat(
- [out] STATSTG *pstatstg,
- [in] DWORD grfStatFlag);
- }
- [
- object,
- uuid(0000010b-0000-0000-C000-000000000046),
- pointer_default(unique)
- ]
- interface IPersistFile : IPersist
- {
- typedef [unique] IPersistFile *LPPERSISTFILE;
- HRESULT IsDirty();
- HRESULT Load(
- [in] LPCOLESTR pszFileName,
- [in] DWORD dwMode);
- HRESULT Save(
- [in, unique] LPCOLESTR pszFileName,
- [in] BOOL fRemember);
- HRESULT SaveCompleted(
- [in, unique] LPCOLESTR pszFileName);
- HRESULT GetCurFile(
- [out] LPOLESTR *ppszFileName);
- }
- [
- object,
- uuid(0000010a-0000-0000-C000-000000000046),
- pointer_default(unique)
- ]
- interface IPersistStorage : IPersist
- {
- typedef [unique] IPersistStorage *LPPERSISTSTORAGE;
- HRESULT IsDirty();
- HRESULT InitNew(
- [in, unique] IStorage *pStg);
- HRESULT Load(
- [in, unique] IStorage *pStg);
- HRESULT Save(
- [in, unique] IStorage *pStgSave,
- [in] BOOL fSameAsLoad);
- HRESULT SaveCompleted(
- [in, unique] IStorage *pStgNew);
- HRESULT HandsOffStorage();
- }
- [
- object,
- uuid(00000012-0000-0000-C000-000000000046),
- pointer_default(unique)
- ]
- interface IRootStorage : IUnknown
- {
- typedef [unique] IRootStorage *LPROOTSTORAGE;
- HRESULT SwitchToFile(
- [in] LPOLESTR pszFile);
- }
- [
- object,
- uuid(0000000a-0000-0000-C000-000000000046),
- pointer_default(unique)
- ]
- interface ILockBytes : IUnknown
- {
- typedef [unique] ILockBytes *LPLOCKBYTES;
- [local]
- HRESULT ReadAt(
- [in] ULARGE_INTEGER ulOffset,
- [out, size_is(cb), length_is(*pcbRead)]
- void *pv,
- [in] ULONG cb,
- [out] ULONG *pcbRead);
- [call_as(ReadAt)]
- HRESULT RemoteReadAt(
- [in] ULARGE_INTEGER ulOffset,
- [out, size_is(cb), length_is(*pcbRead)]
- byte *pv,
- [in] ULONG cb,
- [out] ULONG *pcbRead);
- [local]
- HRESULT WriteAt(
- [in] ULARGE_INTEGER ulOffset,
- [in, size_is(cb)] const void *pv,
- [in] ULONG cb,
- [out] ULONG *pcbWritten);
- [call_as(WriteAt)]
- HRESULT RemoteWriteAt(
- [in] ULARGE_INTEGER ulOffset,
- [in, size_is(cb)] const byte *pv,
- [in] ULONG cb,
- [out] ULONG *pcbWritten);
- HRESULT Flush();
- HRESULT SetSize(
- [in] ULARGE_INTEGER cb);
- HRESULT LockRegion(
- [in] ULARGE_INTEGER libOffset,
- [in] ULARGE_INTEGER cb,
- [in] DWORD dwLockType);
- HRESULT UnlockRegion(
- [in] ULARGE_INTEGER libOffset,
- [in] ULARGE_INTEGER cb,
- [in] DWORD dwLockType);
- HRESULT Stat(
- [out] STATSTG *pstatstg,
- [in] DWORD grfStatFlag);
- }
- [
- object,
- uuid(99caf010-415e-11cf-8814-00aa00b569f5),
- pointer_default(unique)
- ]
- interface IFillLockBytes : IUnknown
- {
- [local]
- HRESULT FillAppend(
- [in, size_is(cb)] const void *pv,
- [in] ULONG cb,
- [out] ULONG *pcbWritten);
- [call_as(FillAppend)]
- HRESULT RemoteFillAppend(
- [in, size_is(cb)] const byte *pv,
- [in] ULONG cb,
- [out] ULONG *pcbWritten);
- [local]
- HRESULT FillAt(
- [in] ULARGE_INTEGER ulOffset,
- [in, size_is(cb)] const void *pv,
- [in] ULONG cb,
- [out] ULONG *pcbWritten);
- [call_as(FillAt)]
- HRESULT RemoteFillAt(
- [in] ULARGE_INTEGER ulOffset,
- [in, size_is(cb)] const byte *pv,
- [in] ULONG cb,
- [out] ULONG *pcbWritten);
- HRESULT SetFillSize(
- [in] ULARGE_INTEGER ulSize);
- HRESULT Terminate(
- [in] BOOL bCanceled);
- }
- [
- object,
- uuid(a9d758a0-4617-11cf-95fc-00aa00680db4),
- pointer_default(unique)
- ]
- interface IProgressNotify : IUnknown
- {
- HRESULT OnProgress(
- [in] DWORD dwProgressCurrent,
- [in] DWORD dwProgressMaximum,
- [in] BOOL fAccurate,
- [in] BOOL fOwner);
- }
- [
- local,
- object,
- uuid(0e6d4d90-6738-11cf-9608-00aa00680db4),
- pointer_default(unique)
- ]
- interface ILayoutStorage : IUnknown
- {
- typedef struct tagStorageLayout {
- DWORD LayoutType;
- OLECHAR *pwcsElementName;
- LARGE_INTEGER cOffset;
- LARGE_INTEGER cBytes;
- } StorageLayout;
- HRESULT LayoutScript(
- [in] StorageLayout *pStorageLayout,
- [in] DWORD nEntries,
- [in] DWORD glfInterleavedFlag);
- HRESULT BeginMonitor();
- HRESULT EndMonitor();
- HRESULT ReLayoutDocfile(
- [in] OLECHAR *pwcsNewDfName);
- HRESULT ReLayoutDocfileOnILockBytes(
- [in] ILockBytes *pILockBytes);
- }
- /******************** Data Object ********************/
- [
- object,
- uuid(00000103-0000-0000-C000-000000000046),
- pointer_default(unique)
- ]
- interface IEnumFORMATETC : IUnknown
- {
- typedef [unique] IEnumFORMATETC *LPENUMFORMATETC;
- typedef struct tagDVTARGETDEVICE {
- DWORD tdSize;
- WORD tdDriverNameOffset;
- WORD tdDeviceNameOffset;
- WORD tdPortNameOffset;
- WORD tdExtDevmodeOffset;
- [size_is(tdSize - sizeof(DWORD) - 4*sizeof(WORD))]
- BYTE tdData[];
- } DVTARGETDEVICE;
- typedef CLIPFORMAT *LPCLIPFORMAT;
- typedef struct tagFORMATETC {
- CLIPFORMAT cfFormat;
- [unique] DVTARGETDEVICE *ptd;
- DWORD dwAspect;
- LONG lindex;
- DWORD tymed;
- } FORMATETC, *LPFORMATETC;
- [local]
- HRESULT Next(
- [in] ULONG celt,
- [out, size_is(celt), length_is(*pceltFetched)]
- FORMATETC *rgelt,
- [out] ULONG *pceltFetched);
- [call_as(Next)]
- HRESULT RemoteNext(
- [in] ULONG celt,
- [out, size_is(celt), length_is(*pceltFetched)]
- FORMATETC *rgelt,
- [out] ULONG *pceltFetched);
- HRESULT Skip(
- [in] ULONG celt);
- HRESULT Reset();
- HRESULT Clone(
- [out] IEnumFORMATETC **ppenum);
- }
- [
- object,
- uuid(00000105-0000-0000-C000-000000000046),
- pointer_default(unique)
- ]
- interface IEnumSTATDATA : IUnknown
- {
- typedef [unique] IEnumSTATDATA *LPENUMSTATDATA;
- typedef enum tagADVF {
- ADVF_NODATA = 1,
- ADVF_PRIMEFIRST = 2,
- ADVF_ONLYONCE = 4,
- ADVF_DATAONSTOP = 64,
- ADVFCACHE_NOHANDLER = 8,
- ADVFCACHE_FORCEBUILTIN = 16,
- ADVFCACHE_ONSAVE = 32
- } ADVF;
- typedef struct tagSTATDATA
- {
- FORMATETC formatetc;
- DWORD advf;
- [unique] IAdviseSink *pAdvSink;
- DWORD dwConnection;
- } STATDATA, *LPSTATDATA;
- [local]
- HRESULT Next(
- [in] ULONG celt,
- [out, size_is(celt), length_is(*pceltFetched)]
- STATDATA *rgelt,
- [out] ULONG *pceltFetched);
- [call_as(Next)]
- HRESULT RemoteNext(
- [in] ULONG celt,
- [out, size_is(celt), length_is(*pceltFetched)]
- STATDATA *rgelt,
- [out] ULONG *pceltFetched);
- HRESULT Skip(
- [in] ULONG celt);
- HRESULT Reset();
- HRESULT Clone(
- [out] IEnumSTATDATA **ppenum);
- }
- [
- object,
- uuid(0000010f-0000-0000-C000-000000000046),
- pointer_default(unique)
- ]
- interface IAdviseSink : IUnknown
- {
- typedef IAdviseSink *LPADVISESINK;
- typedef [v1_enum] enum tagTYMED {
- TYMED_HGLOBAL = 1,
- TYMED_FILE = 2,
- TYMED_ISTREAM = 4,
- TYMED_ISTORAGE = 8,
- TYMED_GDI = 16,
- TYMED_MFPICT = 32,
- TYMED_ENHMF = 64,
- TYMED_NULL = 0
- } TYMED;
- typedef struct tagRemSTGMEDIUM {
- DWORD tymed;
- DWORD dwHandleType;
- unsigned long pData;
- unsigned long pUnkForRelease;
- unsigned long cbData;
- [size_is(cbData)] byte data[];
- } RemSTGMEDIUM;
- /* FIXME: C/C++ nameless union version */
- typedef struct tagSTGMEDIUM {
- DWORD tymed;
- [switch_is(tymed)] union {
- [case(TYMED_GDI)] HBITMAP hBitmap;
- [case(TYMED_MFPICT)] HMETAFILEPICT hMetaFilePict;
- [case(TYMED_ENHMF)] HENHMETAFILE hEnhMetaFile;
- [case(TYMED_HGLOBAL)] HGLOBAL hGlobal;
- [case(TYMED_FILE)] LPOLESTR lpszFileName;
- [case(TYMED_ISTREAM)] IStream *pstm;
- [case(TYMED_ISTORAGE)] IStorage *pstg;
- [default] ;
- };
- [unique] IUnknown *pUnkForRelease;
- } uSTGMEDIUM;
- /* copied from wingdi.h */
- #define OBJ_PEN 1
- #define OBJ_BRUSH 2
- #define OBJ_DC 3
- #define OBJ_METADC 4
- #define OBJ_PAL 5
- #define OBJ_FONT 6
- #define OBJ_BITMAP 7
- #define OBJ_REGION 8
- #define OBJ_METAFILE 9
- #define OBJ_MEMDC 10
- #define OBJ_EXTPEN 11
- #define OBJ_ENHMETADC 12
- #define OBJ_ENHMETAFILE 13
- typedef union _GDI_OBJECT switch(DWORD ObjectType) u {
- case OBJ_BITMAP: wireHBITMAP hBitmap;
- case OBJ_PAL: wireHPALETTE hPalette;
- default: wireHGLOBAL hGeneric;
- } GDI_OBJECT;
- typedef struct _userSTGMEDIUM {
- union switch(DWORD tymed) u {
- case TYMED_NULL: ;
- case TYMED_MFPICT: wireHMETAFILEPICT hMetaFilePict;
- case TYMED_ENHMF: wireHENHMETAFILE hHEnhMetaFile;
- case TYMED_GDI: GDI_OBJECT *hGdiHandle;
- case TYMED_HGLOBAL: wireHGLOBAL hGlobal;
- case TYMED_FILE: LPOLESTR lpszFileName;
- case TYMED_ISTREAM: BYTE_BLOB *pstm;
- case TYMED_ISTORAGE: BYTE_BLOB *pstg;
- };
- IUnknown *pUnkForRelease;
- } userSTGMEDIUM;
- typedef [unique] userSTGMEDIUM *wireSTGMEDIUM;
- typedef [wire_marshal(wireSTGMEDIUM)] uSTGMEDIUM STGMEDIUM;
- typedef [unique] userSTGMEDIUM *wireASYNC_STGMEDIUM;
- typedef [wire_marshal(wireASYNC_STGMEDIUM)] STGMEDIUM ASYNC_STGMEDIUM;
- typedef STGMEDIUM *LPSTGMEDIUM;
- typedef struct _userFLAG_STGMEDIUM {
- long ContextFlags;
- long fPassOwnership;
- userSTGMEDIUM Stgmed;
- } userFLAG_STGMEDIUM;
- typedef [unique] userFLAG_STGMEDIUM *wireFLAG_STGMEDIUM;
- typedef [wire_marshal(wireFLAG_STGMEDIUM)] struct _FLAG_STGMEDIUM {
- long ContextFlags;
- long fPassOwnership;
- STGMEDIUM Stgmed;
- } FLAG_STGMEDIUM;
- [local]
- void OnDataChange(
- [in, unique] FORMATETC *pFormatetc,
- [in, unique] STGMEDIUM *pStgmed);
- [call_as(OnDataChange), async]
- HRESULT RemoteOnDataChange(
- [in] IAsyncManager **ppIAM,
- [in, unique] FORMATETC *pFormatetc,
- [in, unique] ASYNC_STGMEDIUM *pStgmed);
- [local]
- void OnViewChange(
- [in] DWORD dwAspect,
- [in] LONG lindex);
- [call_as(OnViewChange), async]
- HRESULT RemoteOnViewChange(
- [in] IAsyncManager **ppIAM,
- [in] DWORD dwAspect,
- [in] LONG lindex);
- [local]
- void OnRename(
- [in] IMoniker *pmk);
- [call_as(OnRename), async]
- HRESULT RemoteOnRename(
- [in] IAsyncManager **ppIAM,
- [in] IMoniker *pmk);
- [local]
- void OnSave();
- [call_as(OnSave), async]
- HRESULT RemoteOnSave(
- [in] IAsyncManager **ppIAM);
- [local]
- void OnClose();
- [call_as(OnClose)]
- HRESULT RemoteOnClose();
- }
- [
- object,
- uuid(00000125-0000-0000-C000-000000000046),
- pointer_default(unique)
- ]
- interface IAdviseSink2 : IAdviseSink
- {
- typedef [unique] IAdviseSink2 *LPADVISESINK2;
- [local]
- void OnLinkSrcChange(
- [in, unique] IMoniker *pmk);
- [call_as(OnLinkSrcChange), async]
- HRESULT RemoteOnLinkSrcChange(
- [in] IAsyncManager **ppIAM,
- [in, unique] IMoniker *pmk);
- }
- [
- object,
- uuid(0000010e-0000-0000-C000-000000000046),
- pointer_default(unique)
- ]
- interface IDataObject : IUnknown
- {
- typedef [unique] IDataObject *LPDATAOBJECT;
- typedef enum tagDATADIR {
- DATADIR_GET = 1,
- DATADIR_SET = 2
- } DATADIR;
- [local]
- HRESULT GetData(
- [in, unique] FORMATETC *pformatetcIn,
- [out] STGMEDIUM *pmedium);
- [call_as(GetData)]
- HRESULT RemoteGetData(
- [in, unique] FORMATETC *pformatetcIn,
- [out] STGMEDIUM *pRemoteMedium);
- [local]
- HRESULT GetDataHere(
- [in, unique] FORMATETC *pformatetc,
- [in, out] STGMEDIUM *pmedium);
- [call_as(GetDataHere)]
- HRESULT RemoteGetDataHere(
- [in, unique] FORMATETC *pformatetc,
- [in, out] STGMEDIUM *pRemoteMedium);
- HRESULT QueryGetData(
- [in, unique] FORMATETC *pformatetc);
- HRESULT GetCanonicalFormatEtc(
- [in, unique] FORMATETC *pformatectIn,
- [out] FORMATETC *pformatetcOut);
- [local]
- HRESULT SetData(
- [in, unique] FORMATETC *pformatetc,
- [in, unique] STGMEDIUM *pmedium,
- [in] BOOL fRelease);
- [call_as(SetData)]
- HRESULT RemoteSetData(
- [in, unique] FORMATETC *pformatetc,
- [in, unique] FLAG_STGMEDIUM *pmedium,
- [in] BOOL fRelease);
- HRESULT EnumFormatEtc(
- [in] DWORD dwDirection,
- [out] IEnumFORMATETC **ppenumFormatEtc);
- HRESULT DAdvise(
- [in] FORMATETC *pformatetc,
- [in] DWORD advf,
- [in, unique] IAdviseSink *pAdvSink,
- [out] DWORD *pdwConnection);
- HRESULT DUnadvise(
- [in] DWORD dwConnection);
- HRESULT EnumDAdvise(
- [out] IEnumSTATDATA **ppenumAdvise);
- }
- [
- local,
- object,
- uuid(00000110-0000-0000-C000-000000000046)
- ]
- interface IDataAdviseHolder : IUnknown
- {
- typedef [unique] IDataAdviseHolder *LPDATAADVISEHOLDER;
- HRESULT Advise(
- [in, unique] IDataObject *pDataObject,
- [in, unique] FORMATETC *pFetc,
- [in] DWORD advf,
- [in, unique] IAdviseSink *pAdvise,
- [out] DWORD *pdwConnection);
- HRESULT Unadvise(
- [in] DWORD dwConnection);
- HRESULT EnumAdvise(
- [out] IEnumSTATDATA **ppenumAdvise);
- HRESULT SendOnDataChange(
- [in, unique] IDataObject *pDataObject,
- [in] DWORD dwReserved,
- [in] DWORD advf);
- }
- /******************** Remoting ********************/
- [
- local,
- object,
- uuid(00000016-0000-0000-C000-000000000046)
- ]
- interface IMessageFilter : IUnknown
- {
- typedef [unique] IMessageFilter *LPMESSAGEFILTER;
- typedef enum tagCALLTYPE {
- CALLTYPE_TOPLEVEL = 1,
- CALLTYPE_NESTED = 2,
- CALLTYPE_ASYNC = 3,
- CALLTYPE_TOPLEVEL_CALLPENDING = 4,
- CALLTYPE_ASYNC_CALLPENDING = 5
- } CALLTYPE;
- typedef enum tagSERVERCALL {
- SERVERCALL_ISHANDLED = 0,
- SERVERCALL_REJECTED = 1,
- SERVERCALL_RETRYLATER = 2
- } SERVERCALL;
- typedef enum tagPENDINGTYPE {
- PENDINGTYPE_TOPLEVEL = 1,
- PENDINGTYPE_NESTED = 2
- } PENDINGTYPE;
- typedef enum tagPENDINGMSG {
- PENDINGMSG_CANCELCALL = 0,
- PENDINGMSG_WAITNOPROCESS = 1,
- PENDINGMSG_WAITDEFPROCESS = 2
- } PENDINGMSG;
- typedef struct tagINTERFACEINFO {
- IUnknown *pUnk;
- IID iid;
- WORD wMethod;
- } INTERFACEINFO, *LPINTERFACEINFO;
- DWORD HandleInComingCall(
- [in] DWORD dwCallType,
- [in] HTASK htaskCaller,
- [in] DWORD dwTickCount,
- [in] LPINTERFACEINFO lpInterfaceInfo);
- DWORD RetryRejectedCall(
- [in] HTASK htaskCallee,
- [in] DWORD dwTickCount,
- [in] DWORD dwRejectType);
- DWORD MessagePending(
- [in] HTASK htaskCallee,
- [in] DWORD dwTickCount,
- [in] DWORD dwPendingType);
- }
- [
- local,
- object,
- uuid(D5F56B60-593B-101A-B569-08002B2DBF7A)
- ]
- interface IRpcChannelBuffer : IUnknown
- {
- typedef [unique] IRpcChannelBuffer *LPRPCCHANNELBUFFER;
- typedef unsigned long RPCOLEDATAREP;
- typedef struct tagRPCOLEMESSAGE {
- void *reserved1;
- RPCOLEDATAREP dataRepresentation;
- void *Buffer;
- ULONG cbBuffer;
- ULONG iMethod;
- void *reserved2[5];
- ULONG rpcFlags;
- } RPCOLEMESSAGE;
- typedef RPCOLEMESSAGE *PRPCOLEMESSAGE;
- HRESULT GetBuffer(
- [in] RPCOLEMESSAGE *pMessage,
- [in] REFIID riid);
- HRESULT SendReceive(
- [in,out] RPCOLEMESSAGE *pMessage,
- [out] ULONG *pStatus);
- HRESULT FreeBuffer(
- [in] RPCOLEMESSAGE *pMessage);
- HRESULT GetDestCtx(
- [out] DWORD *pdwDestContext,
- [out] void **ppvDestContext);
- HRESULT IsConnected();
- }
- [
- local,
- object,
- uuid(594f31d0-7f19-11d0-b194-00a0c90dc8bf)
- ]
- interface IRpcChannelBuffer2 : IRpcChannelBuffer
- {
- typedef [unique] IRpcChannelBuffer2 *LPRPCCHANNELBUFFER2;
- HRESULT GetProtocolVersion(
- [in,out] DWORD *pdwVersion);
- }
- [
- local,
- object,
- uuid(25B15600-0115-11d0-BF0D-00AA00B8DFD2)
- ]
- interface IRpcChannelBuffer3 : IRpcChannelBuffer2
- {
- typedef [unique] IRpcChannelBuffer3 *LPRPCCHANNELBUFFER3;
- HRESULT Send(
- [in,out] RPCOLEMESSAGE *pMsg,
- [out] ULONG *pulStatus);
- HRESULT Receive(
- [in,out] RPCOLEMESSAGE *pMsg,
- [in] ULONG ulSize,
- [out] ULONG *pulStatus);
- HRESULT Cancel(
- [in] RPCOLEMESSAGE *pMsg);
- HRESULT GetCallContext(
- [in] RPCOLEMESSAGE *pMsg,
- [in] REFIID riid,
- [out] void **pInterface);
- HRESULT GetDestCtxEx(
- [in] RPCOLEMESSAGE *pMsg,
- [out] DWORD *pdwDestContext,
- [out] void **ppvDestContext);
- HRESULT GetState(
- [in] RPCOLEMESSAGE *pMsg,
- [out] DWORD *pState);
- HRESULT RegisterAsync(
- [in] RPCOLEMESSAGE *pMsg,
- [in] IAsyncManager *pAsyncMgr);
- }
- [
- local,
- object,
- uuid(D5F56A34-593B-101A-B569-08002B2DBF7A)
- ]
- interface IRpcProxyBuffer : IUnknown
- {
- typedef [unique] IRpcProxyBuffer *LPRPCPROXYBUFFER;
- HRESULT Connect(
- [in, unique] IRpcChannelBuffer *pRpcChannelBuffer);
- void Disconnect();
- }
- [
- local,
- object,
- uuid(D5F56AFC-593B-101A-B569-08002B2DBF7A)
- ]
- interface IRpcStubBuffer : IUnknown
- {
- typedef [unique] IRpcStubBuffer *LPRPCSTUBBUFFER;
- HRESULT Connect(
- [in] IUnknown *pUnkServer);
- void Disconnect();
- HRESULT Invoke(
- [in] RPCOLEMESSAGE *_prpcmsg,
- [in] IRpcChannelBuffer *_pRpcChannelBuffer);
- IRpcStubBuffer *IsIIDSupported(
- [in] REFIID riid);
- ULONG CountRefs();
- HRESULT DebugServerQueryInterface(
- void **ppv);
- void DebugServerRelease(
- void *pv);
- }
- [
- local,
- object,
- uuid(D5F569D0-593B-101A-B569-08002B2DBF7A)
- ]
- interface IPSFactoryBuffer : IUnknown
- {
- typedef [unique] IPSFactoryBuffer *LPPSFACTORYBUFFER;
- HRESULT CreateProxy(
- [in] IUnknown *pUnkOuter,
- [in] REFIID riid,
- [out] IRpcProxyBuffer **ppProxy,
- [out] void **ppv);
- HRESULT CreateStub(
- [in] REFIID riid,
- [in, unique] IUnknown *pUnkServer,
- [out] IRpcStubBuffer **ppStub);
- }
- [
- local,
- object,
- uuid(1008c4a0-7613-11cf-9af1-0020af6e72f4)
- ]
- interface IChannelHook : IUnknown
- {
- typedef [unique] IChannelHook *LPCHANNELHOOK;
- typedef struct SChannelHookCallInfo {
- IID iid;
- DWORD cbSize;
- GUID uCausality;
- DWORD dwServerPid;
- DWORD iMethod;
- void *pObject;
- } SChannelHookCallInfo;
- void ClientGetSize(
- [in] REFGUID uExtent,
- [in] REFIID riid,
- [out] ULONG *pDataSize);
- void ClientFillBuffer(
- [in] REFGUID uExtent,
- [in] REFIID riid,
- [in, out] ULONG *pDataSize,
- [in] void *pDataBuffer);
- void ClientNotify(
- [in] REFGUID uExtent,
- [in] REFIID riid,
- [in] ULONG cbDataSize,
- [in] void *pDataBuffer,
- [in] DWORD lDataRep,
- [in] HRESULT hrFault);
- void ServerNotify(
- [in] REFGUID uExtent,
- [in] REFIID riid,
- [in] ULONG cbDataSize,
- [in] void *pDataBuffer,
- [in] DWORD lDataRep);
- void ServerGetSize(
- [in] REFGUID uExtent,
- [in] REFIID riid,
- [in] HRESULT hrFault,
- [out] ULONG *pDataSize);
- void ServerFillBuffer(
- [in] REFGUID uExtent,
- [in] REFIID riid,
- [in, out] ULONG *pDataSize,
- [in] void *pDataBuffer,
- [in] HRESULT hrFault );
- }
- extern const FMTID FMTID_SummaryInformation;
- extern const FMTID FMTID_DocSummaryInformation;
- extern const FMTID FMTID_UserDefinedProperties;
- /******************** Connection Points ********************/
- /* FIXME */
- /******************** DCOM ********************/
- [
- local,
- object,
- uuid(0000013D-0000-0000-C000-000000000046)
- ]
- interface IClientSecurity : IUnknown
- {
- typedef struct tagSOLE_AUTHENTICATION_SERVICE {
- DWORD dwAuthnSvc;
- DWORD dwAuthzSvc;
- OLECHAR *pPrincipalName;
- HRESULT hr;
- } SOLE_AUTHENTICATION_SERVICE;
- typedef SOLE_AUTHENTICATION_SERVICE *PSOLE_AUTHENTICATION_SERVICE;
- typedef enum tagEOLE_AUTHENTICATION_CAPABILITIES {
- EOAC_NONE = 0x0,
- EOAC_MUTUAL_AUTH = 0x1,
- EOAC_CLOAKING = 0x10,
- EOAC_SECURE_REFS = 0x2,
- EOAC_ACCESS_CONTROL = 0x4,
- EOAC_APPID = 0x8
- } EOLE_AUTHENTICATION_CAPABILITIES;
- HRESULT QueryBlanket(
- [in] IUnknown *pProxy,
- [out] DWORD *pAuthnSvc,
- [out] DWORD *pAuthzSvc,
- [out] OLECHAR **pServerPrincName,
- [out] DWORD *pAuthnLevel,
- [out] DWORD *pImpLevel,
- [out] void **pAuthInfo,
- [out] DWORD *pCapabilites);
- HRESULT SetBlanket(
- [in] IUnknown *pProxy,
- [in] DWORD AuthnSvc,
- [in] DWORD AuthzSvc,
- [in] OLECHAR *pServerPrincName,
- [in] DWORD AuthnLevel,
- [in] DWORD ImpLevel,
- [in] void *pAuthInfo,
- [in] DWORD Capabilities);
- HRESULT CopyProxy(
- [in] IUnknown *pProxy,
- [out] IUnknown **ppCopy);
- }
- [
- local,
- object,
- uuid(0000013E-0000-0000-C000-000000000046)
- ]
- interface IServerSecurity : IUnknown
- {
- HRESULT QueryBlanket(
- [out] DWORD *pAuthnSvc,
- [out] DWORD *pAuthzSvc,
- [out] OLECHAR **pServerPrincName,
- [out] DWORD *pAuthnLevel,
- [out] DWORD *pImpLevel,
- [out] void **pPrivs,
- [out] DWORD *pCapabilities);
- HRESULT ImpersonateClient();
- HRESULT RevertToSelf();
- BOOL IsImpersonating();
- }
- [
- local,
- object,
- uuid(00000024-0000-0000-C000-000000000046)
- ]
- interface IAsyncSetup : IUnknown
- {
- HRESULT GetAsyncManager(
- [in] REFIID riid,
- [in] IUnknown *pOuter,
- [in] DWORD dwFlags,
- [out] IUnknown **ppInner,
- [out] IAsyncManager **ppAsyncMgr);
- }
- [
- local,
- object,
- uuid(0000002A-0000-0000-C000-000000000046)
- ]
- interface IAsyncManager : IUnknown
- {
- typedef enum tagDCOM_CALL_STATE {
- DCOM_NONE = 0,
- DCOM_CALL_COMPLETE = 1,
- DCOM_CALL_CANCELED = 2
- } DCOM_CALL_STATE;
- HRESULT CompleteCall(
- [in] HRESULT Result);
- HRESULT GetCallContext(
- [in] REFIID riid,
- [out] void **pInterface);
- HRESULT GetState(
- [out] ULONG *pulStateFlags);
- }
|