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

📄 dcom.h

📁 winNT技术操作系统,国外开放的原代码和LIUX一样
💻 H
字号:
/*** Autogenerated by WIDL 0.1 from dcom.idl - Do not edit ***/
#include <rpc.h>
#include <rpcndr.h>

#ifndef __WIDL_DCOM_H
#define __WIDL_DCOM_H
#ifdef __cplusplus
extern "C" {
#endif
#include <unknwn.h>
typedef MIDL_uhyper ID;

typedef ID MID;

typedef ID OXID;

typedef ID OID;

typedef ID SETID;

typedef GUID IPID;

typedef GUID CID;

typedef REFGUID REFIPID;

#define COM_MINOR_VERSION_1 (1)

#define COM_MINOR_VERSION_2 (2)

#define COM_MAJOR_VERSION (5)

#define COM_MINOR_VERSION (3)

typedef struct tagCOMVERSION {
    unsigned short MajorVersion;
    unsigned short MinorVersion;
} COMVERSION;

#define ORPCF_NULL (0)

#define ORPCF_LOCAL (1)

#define ORPCF_RESERVED1 (2)

#define ORPCF_RESERVED2 (4)

#define ORPCF_RESERVED3 (8)

#define ORPCF_RESERVED4 (16)

typedef struct tagORPC_EXTENT {
    GUID id;
    unsigned long size;
    byte data[1];
} ORPC_EXTENT;

typedef struct tagORPC_EXTENT_ARRAY {
    unsigned long size;
    unsigned long reserved;
    ORPC_EXTENT **extent;
} ORPC_EXTENT_ARRAY;

typedef struct tagORPCTHIS {
    COMVERSION version;
    unsigned long flags;
    unsigned long reserved1;
    CID cid;
    ORPC_EXTENT_ARRAY *extensions;
} ORPCTHIS;

typedef struct tagORPCTHAT {
    unsigned long flags;
    ORPC_EXTENT_ARRAY *extensions;
} ORPCTHAT;

#define NCADG_IP_UDP (0x8)

#define NCACN_IP_TCP (0x7)

#define NCADG_IPX (0xe)

#define NCACN_SPX (0xc)

#define NCACN_NB_NB (0x12)

#define NCACN_NB_IPX (0xd)

#define NCACN_DNET_NSP (0x4)

#define NCACN_HTTP (0x1f)

typedef struct tagSTRINGBINDING {
    unsigned short wTowerId;
    unsigned short aNetworkAddr[1];
} STRINGBINDING;

#define COM_C_AUTHZ_NONE (0xffff)

typedef struct tagSECURITYBINDING {
    unsigned short wAuthnSvc;
    unsigned short wAuthzSvc;
    unsigned short aPrincName[1];
} SECURITYBINDING;

typedef struct tagDUALSTRINGARRAY {
    unsigned short wNumEntries;
    unsigned short wSecurityOffset;
    unsigned short aStringArray[1];
} DUALSTRINGARRAY;

#define OBJREF_SIGNATURE (0x574f454d)

#define OBJREF_STANDARD (0x1)

#define OBJREF_HANDLER (0x2)

#define OBJREF_CUSTOM (0x4)

#define SORF_OXRES1 (0x1)

#define SORF_OXRES2 (0x20)

#define SORF_OXRES3 (0x40)

#define SORF_OXRES4 (0x80)

#define SORF_OXRES5 (0x100)

#define SORF_OXRES6 (0x200)

#define SORF_OXRES7 (0x400)

#define SORF_OXRES8 (0x800)

#define SORF_NULL (0x0)

#define SORF_NOPING (0x1000)

typedef struct tagSTDOBJREF {
    unsigned long flags;
    unsigned long cPublicRefs;
    OXID oxid;
    OID oid;
    IPID ipid;
} STDOBJREF;

typedef struct tagOBJREF {
    unsigned long signature;
    unsigned long flags;
    GUID iid;
    union {
        struct OR_STANDARD {
            STDOBJREF std;
            DUALSTRINGARRAY saResAddr;
        } u_standard;
        struct OR_HANDLER {
            STDOBJREF std;
            CLSID clsid;
            DUALSTRINGARRAY saResAddr;
        } u_handler;
        struct OR_CUSTOM {
            CLSID clsid;
            unsigned long cbExtension;
            unsigned long size;
            byte *pData;
        } u_custom;
    } u_objref;
} OBJREF;

typedef struct tagMInterfacePointer {
    ULONG ulCntData;
    BYTE abData[1];
} MInterfacePointer;

typedef MInterfacePointer *PMInterfacePointer;

#ifndef __IRemUnknown_FWD_DEFINED__
#define __IRemUnknown_FWD_DEFINED__
typedef struct IRemUnknown IRemUnknown;
#endif

typedef IRemUnknown *LPREMUNKNOWN;

typedef struct tagREMQIRESULT {
    HRESULT hResult;
    STDOBJREF std;
} REMQIRESULT;

typedef struct tagREMINTERFACEREF {
    IPID ipid;
    unsigned long cPublicRefs;
    unsigned long cPrivateRefs;
} REMINTERFACEREF;

/*****************************************************************************
 * IRemUnknown interface
 */
#ifndef __IRemUnknown_INTERFACE_DEFINED__
#define __IRemUnknown_INTERFACE_DEFINED__

DEFINE_GUID(IID_IRemUnknown, 0x00000131, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IRemUnknown : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE RemQueryInterface(
        REFIPID ripid,
        unsigned long cRefs,
        unsigned short cIids,
        IID* iids,
        REMQIRESULT** ppQIResults) = 0;

    virtual HRESULT STDMETHODCALLTYPE RemAddRef(
        unsigned short cInterfaceRefs,
        REMINTERFACEREF* InterfaceRefs,
        HRESULT* pResults) = 0;

    virtual HRESULT STDMETHODCALLTYPE RemRelease(
        unsigned short cInterfaceRefs,
        REMINTERFACEREF* InterfaceRefs) = 0;

};
#else
typedef struct IRemUnknownVtbl IRemUnknownVtbl;
struct IRemUnknown {
    const IRemUnknownVtbl* lpVtbl;
};
struct IRemUnknownVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IRemUnknown* This,
        REFIID riid,
        void** ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IRemUnknown* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IRemUnknown* This);

    /*** IRemUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *RemQueryInterface)(
        IRemUnknown* This,
        REFIPID ripid,
        unsigned long cRefs,
        unsigned short cIids,
        IID* iids,
        REMQIRESULT** ppQIResults);

    HRESULT (STDMETHODCALLTYPE *RemAddRef)(
        IRemUnknown* This,
        unsigned short cInterfaceRefs,
        REMINTERFACEREF* InterfaceRefs,
        HRESULT* pResults);

    HRESULT (STDMETHODCALLTYPE *RemRelease)(
        IRemUnknown* This,
        unsigned short cInterfaceRefs,
        REMINTERFACEREF* InterfaceRefs);

    END_INTERFACE
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IRemUnknown_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IRemUnknown_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IRemUnknown_Release(p) (p)->lpVtbl->Release(p)
/*** IRemUnknown methods ***/
#define IRemUnknown_RemQueryInterface(p,a,b,c,d,e) (p)->lpVtbl->RemQueryInterface(p,a,b,c,d,e)
#define IRemUnknown_RemAddRef(p,a,b,c) (p)->lpVtbl->RemAddRef(p,a,b,c)
#define IRemUnknown_RemRelease(p,a,b) (p)->lpVtbl->RemRelease(p,a,b)
#endif

#endif

#define IRemUnknown_METHODS \
    /*** IUnknown methods ***/ \
    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
    STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
    STDMETHOD_(ULONG,Release)(THIS) PURE; \
    /*** IRemUnknown methods ***/ \
    STDMETHOD_(HRESULT,RemQueryInterface)(THIS_ REFIPID ripid, unsigned long cRefs, unsigned short cIids, IID* iids, REMQIRESULT** ppQIResults) PURE; \
    STDMETHOD_(HRESULT,RemAddRef)(THIS_ unsigned short cInterfaceRefs, REMINTERFACEREF* InterfaceRefs, HRESULT* pResults) PURE; \
    STDMETHOD_(HRESULT,RemRelease)(THIS_ unsigned short cInterfaceRefs, REMINTERFACEREF* InterfaceRefs) PURE;

HRESULT CALLBACK IRemUnknown_RemQueryInterface_Proxy(
    IRemUnknown* This,
    REFIPID ripid,
    unsigned long cRefs,
    unsigned short cIids,
    IID* iids,
    REMQIRESULT** ppQIResults);
void __RPC_STUB IRemUnknown_RemQueryInterface_Stub(
    struct IRpcStubBuffer* This,
    struct IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IRemUnknown_RemAddRef_Proxy(
    IRemUnknown* This,
    unsigned short cInterfaceRefs,
    REMINTERFACEREF* InterfaceRefs,
    HRESULT* pResults);
void __RPC_STUB IRemUnknown_RemAddRef_Stub(
    struct IRpcStubBuffer* This,
    struct IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IRemUnknown_RemRelease_Proxy(
    IRemUnknown* This,
    unsigned short cInterfaceRefs,
    REMINTERFACEREF* InterfaceRefs);
void __RPC_STUB IRemUnknown_RemRelease_Stub(
    struct IRpcStubBuffer* This,
    struct IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IRemUnknown_INTERFACE_DEFINED__ */

#ifndef __IRemUnknown2_FWD_DEFINED__
#define __IRemUnknown2_FWD_DEFINED__
typedef struct IRemUnknown2 IRemUnknown2;
#endif

typedef IRemUnknown2 *LPREMUNKNOWN2;

/*****************************************************************************
 * IRemUnknown2 interface
 */
#ifndef __IRemUnknown2_INTERFACE_DEFINED__
#define __IRemUnknown2_INTERFACE_DEFINED__

DEFINE_GUID(IID_IRemUnknown2, 0x00000142, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
#if defined(__cplusplus) && !defined(CINTERFACE)
struct IRemUnknown2 : public IRemUnknown
{
    virtual HRESULT STDMETHODCALLTYPE RemQueryInterface2(
        REFIPID ripid,
        unsigned short cIids,
        IID* iids,
        HRESULT* phr,
        MInterfacePointer** ppMIF) = 0;

};
#else
typedef struct IRemUnknown2Vtbl IRemUnknown2Vtbl;
struct IRemUnknown2 {
    const IRemUnknown2Vtbl* lpVtbl;
};
struct IRemUnknown2Vtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IRemUnknown2* This,
        REFIID riid,
        void** ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IRemUnknown2* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IRemUnknown2* This);

    /*** IRemUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *RemQueryInterface)(
        IRemUnknown2* This,
        REFIPID ripid,
        unsigned long cRefs,
        unsigned short cIids,
        IID* iids,
        REMQIRESULT** ppQIResults);

    HRESULT (STDMETHODCALLTYPE *RemAddRef)(
        IRemUnknown2* This,
        unsigned short cInterfaceRefs,
        REMINTERFACEREF* InterfaceRefs,
        HRESULT* pResults);

    HRESULT (STDMETHODCALLTYPE *RemRelease)(
        IRemUnknown2* This,
        unsigned short cInterfaceRefs,
        REMINTERFACEREF* InterfaceRefs);

    /*** IRemUnknown2 methods ***/
    HRESULT (STDMETHODCALLTYPE *RemQueryInterface2)(
        IRemUnknown2* This,
        REFIPID ripid,
        unsigned short cIids,
        IID* iids,
        HRESULT* phr,
        MInterfacePointer** ppMIF);

    END_INTERFACE
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IRemUnknown2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IRemUnknown2_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IRemUnknown2_Release(p) (p)->lpVtbl->Release(p)
/*** IRemUnknown methods ***/
#define IRemUnknown2_RemQueryInterface(p,a,b,c,d,e) (p)->lpVtbl->RemQueryInterface(p,a,b,c,d,e)
#define IRemUnknown2_RemAddRef(p,a,b,c) (p)->lpVtbl->RemAddRef(p,a,b,c)
#define IRemUnknown2_RemRelease(p,a,b) (p)->lpVtbl->RemRelease(p,a,b)
/*** IRemUnknown2 methods ***/
#define IRemUnknown2_RemQueryInterface2(p,a,b,c,d,e) (p)->lpVtbl->RemQueryInterface2(p,a,b,c,d,e)
#endif

#endif

#define IRemUnknown2_METHODS \
    /*** IUnknown methods ***/ \
    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
    STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
    STDMETHOD_(ULONG,Release)(THIS) PURE; \
    /*** IRemUnknown methods ***/ \
    STDMETHOD_(HRESULT,RemQueryInterface)(THIS_ REFIPID ripid, unsigned long cRefs, unsigned short cIids, IID* iids, REMQIRESULT** ppQIResults) PURE; \
    STDMETHOD_(HRESULT,RemAddRef)(THIS_ unsigned short cInterfaceRefs, REMINTERFACEREF* InterfaceRefs, HRESULT* pResults) PURE; \
    STDMETHOD_(HRESULT,RemRelease)(THIS_ unsigned short cInterfaceRefs, REMINTERFACEREF* InterfaceRefs) PURE; \
    /*** IRemUnknown2 methods ***/ \
    STDMETHOD_(HRESULT,RemQueryInterface2)(THIS_ REFIPID ripid, unsigned short cIids, IID* iids, HRESULT* phr, MInterfacePointer** ppMIF) PURE;

HRESULT CALLBACK IRemUnknown2_RemQueryInterface2_Proxy(
    IRemUnknown2* This,
    REFIPID ripid,
    unsigned short cIids,
    IID* iids,
    HRESULT* phr,
    MInterfacePointer** ppMIF);
void __RPC_STUB IRemUnknown2_RemQueryInterface2_Stub(
    struct IRpcStubBuffer* This,
    struct IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IRemUnknown2_INTERFACE_DEFINED__ */

#if 0
/*****************************************************************************
 * IOXIDResolver interface (v0.0)
 */
DEFINE_GUID(IID_IOXIDResolver, 0x99fcfec4, 0x5260, 0x101b, 0xbb,0xcb, 0x00,0xaa,0x00,0x21,0x34,0x7a);
extern RPC_IF_HANDLE IOXIDResolver_v0_0_c_ifspec;
extern RPC_IF_HANDLE IOXIDResolver_v0_0_s_ifspec;
error_status_t ResolveOxid(
    handle_t hRpc,
    OXID* pOxid,
    unsigned short cRequestedProtseqs,
    unsigned short arRequestedProtseqs[],
    DUALSTRINGARRAY** ppdsaOxidBindings,
    IPID* pipidRemUnknown,
    DWORD* pAuthnHint);
error_status_t SimplePing(
    handle_t hRpc,
    SETID* pSetId);
error_status_t ComplexPing(
    handle_t hRpc,
    SETID* pSetId,
    unsigned short SequenceNum,
    unsigned short cAddToSet,
    unsigned short cDelFromSet,
    OID AddToSet[],
    OID DelFromSet[],
    unsigned short* pPingBackoffFactor);
error_status_t ServerAlive(
    handle_t hRpc);
error_status_t ResolveOxid2(
    handle_t hRpc,
    OXID* pOxid,
    unsigned short cRequestedProtseqs,
    unsigned short arRequestedProtseqs[],
    DUALSTRINGARRAY** ppdsaOxidBindings,
    IPID* pipidRemUnknown,
    DWORD* pAuthnHint,
    COMVERSION* pComVersion);

#define MODE_GET_CLASS_OBJECT (0xffffffff)

/*****************************************************************************
 * IRemoteActivation interface (v0.0)
 */
DEFINE_GUID(IID_IRemoteActivation, 0x4d9f4ab8, 0x7d1c, 0x11cf, 0x86,0x1e, 0x00,0x20,0xaf,0x6e,0x7c,0x57);
extern RPC_IF_HANDLE IRemoteActivation_v0_0_c_ifspec;
extern RPC_IF_HANDLE IRemoteActivation_v0_0_s_ifspec;
HRESULT RemoteActivation(
    handle_t hRpc,
    ORPCTHIS* ORPCthis,
    ORPCTHAT* ORPCthat,
    GUID* Clsid,
    WCHAR* pwszObjectName,
    MInterfacePointer* pObjectStorage,
    DWORD ClientImpLevel,
    DWORD Mode,
    DWORD Interfaces,
    IID* pIIDs,
    unsigned short cRequestedProtseqs,
    unsigned short RequestedProtseqs[],
    OXID* pOxid,
    DUALSTRINGARRAY** ppdsaOxidBindings,
    IPID* pipidRemUnknown,
    DWORD* pAuthnHint,
    COMVERSION* pServerVersion,
    HRESULT* phr,
    MInterfacePointer** ppInterfaceData,
    HRESULT* pResults);

#endif
#ifdef __cplusplus
}
#endif
#endif /* __WIDL_DCOM_H */

⌨️ 快捷键说明

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