⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 objidl.idl

📁 本源码是vc环境下的usb程序
💻 IDL
📖 第 1 页 / 共 5 页
字号:
    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
    (
        void
    );

    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;

    // system moniker types; returned from IsSystemMoniker.
    typedef enum tagMKSYS
    {
        MKSYS_NONE = 0,
        MKSYS_GENERICCOMPOSITE = 1,
        MKSYS_FILEMONIKER = 2,
        MKSYS_ANTIMONIKER = 3,
        MKSYS_ITEMMONIKER = 4,
        MKSYS_POINTERMONIKER = 5,
    //  MKSYS_URLMONIKER = 6,
        MKSYS_CLASSMONIKER = 7,
        MKSYS_OBJREFMONIKER = 8,
        MKSYS_SESSIONMONIKER = 9
    }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);
}


/****************************************************************************
 *  Structured Storage Interfaces
 ****************************************************************************/

[
    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)] void const *pv,
        [in] ULONG cb,
        [out] ULONG *pcbWritten);

    [call_as(Write)]
    HRESULT RemoteWrite(
        [in, size_is(cb)] byte const *pv,
        [in] ULONG cb,
        [out] ULONG *pcbWritten);
}


[
    object,
    uuid(0000000c-0000-0000-C000-000000000046),
    pointer_default(unique)
]

interface IStream : ISequentialStream
{

    typedef [unique] IStream *LPSTREAM;

    /* Storage stat buffer */

cpp_quote("//FSSpec is Macintosh only, defined in macos\files.h")

cpp_quote("#ifdef _MAC")

cpp_quote("    typedef struct tagSTATSTG")
cpp_quote("    {                      ")
cpp_quote("        LPOLESTR pwcsName;")
cpp_quote("            FSSpec *pspec;")
cpp_quote("        DWORD type;")
cpp_quote("        ULARGE_INTEGER cbSize;")
cpp_quote("        FILETIME mtime;")
cpp_quote("        FILETIME ctime;")
cpp_quote("        FILETIME atime;")
cpp_quote("        DWORD grfMode;")
cpp_quote("        DWORD grfLocksSupported;")
cpp_quote("        CLSID clsid;")
cpp_quote("        DWORD grfStateBits;")
cpp_quote("        DWORD reserved;")
cpp_quote("    } STATSTG;")

cpp_quote("#else //_MAC")

    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;

cpp_quote("#endif //_MAC")

    /* Storage element types */
    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;

    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, string] const OLECHAR *pwcsName,
        [in] DWORD grfMode,
        [in] DWORD reserved1,
        [in] DWORD reserved2,
        [out] IStream **ppstm);

    [local]
    HRESULT OpenStream(
        [in, string] const OLECHAR *pwcsName,
        [in, unique] void *reserved1,
        [in] DWORD grfMode,
        [in] DWORD reserved2,
        [out] IStream **ppstm);

    [call_as(OpenStream)]
    HRESULT RemoteOpenStream(
        [in, string] const OLECHAR *pwcsName,
        [in] unsigned long cbReserved1,
        [in, unique, size_is(cbReserved1)] byte *reserved1,
        [in] DWORD grfMode,
        [in] DWORD reserved2,
        [out] IStream **ppstm);

    HRESULT CreateStorage(
        [in, string] const OLECHAR *pwcsName,
        [in] DWORD grfMode,
        [in] DWORD reserved1,
        [in] DWORD reserved2,
        [out] IStorage **ppstg);

    HRESULT OpenStorage(
        [in, unique, string] const OLECHAR *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)] IID const *rgiidExclude,
        [in, unique] SNB snbExclude,
        [in, unique] IStorage *pstgDest);

    HRESULT MoveElementTo(
        [in, string] const OLECHAR * pwcsName,
        [in, unique] IStorage *pstgDest,
        [in, string] const OLECHAR *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, string] const OLECHAR *pwcsName);

    HRESULT RenameElement(
        [in, string] const OLECHAR *pwcsOldName,
        [in, string] const OLECHAR *pwcsNewName);

    HRESULT SetElementTimes(
        [in, unique, string] const OLECHAR *pwcsName,
        [in, unique] FILETIME const *pctime,
        [in, unique] FILETIME const *patime,
        [in, unique] FILETIME const *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
{

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -