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

📄 rds.h

📁 EVC4.rar
💻 H
字号:
/*++

Copyright (c) 1999-2001 Microsoft Corporation.  All rights reserved.

Module Name: rds.h

Purpose: Master include file for RCOM.

--*/

#ifndef _RDS_H_
#define _RDS_H_

// {5B61A5CA-E71F-11d3-B0F6-00508B012095}
DEFINE_GUID(
    IID_IRDSDeviceManager,
    0x5b61a5ca, 0xe71f, 0x11d3, 0xb0, 0xf6, 0x0, 0x50, 0x8b, 0x1, 0x20, 0x95
    );

// Forward decl for IRDSProxy
interface IRDSProxy;

interface IRDSDeviceManager : public IUnknown
{
    virtual HRESULT DownloadPackage(GUID PackageID) = 0;
    virtual HRESULT RegisterFile(LPOLESTR fileName) = 0;
    virtual HRESULT Launch(LPCOLESTR pszRemotePath, LPCOLESTR pszCmdLine) = 0;
    virtual HRESULT CreateObject(
            REFCLSID rclsid,
            REFIID riid,
            LPVOID *ppv) = 0;
    virtual HRESULT GetConnectionIDs(GUID *pPlatformID, GUID *pDeviceID) = 0;
};


// {5B61A5C2-E71F-11d3-B0F6-00508B012095}
DEFINE_GUID(
    IID_IPSManager,
    0x5b61a5c2, 0xe71f, 0x11d3, 0xb0, 0xf6, 0x0, 0x50, 0x8b, 0x1, 0x20, 0x95
    );


#define FACILITY_PSMGR              512

#define PSMGR_INVALID_COOKIE_ERR    0x01
#define PSMGR_INVALID_BUFFER_ERR    0x02

#define PSMGR_E_INVALID_COOKIE      MAKE_HRESULT(1, FACILITY_PSMGR, PSMGR_INVALID_COOKIE_ERR)
#define PSMGR_E_INVALID_BUFFER      MAKE_HRESULT(1, FACILITY_PSMGR, PSMGR_INVALID_BUFFER_ERR)

interface IPSManager : public IUnknown
{
    virtual HRESULT CreateProxyStub(
            LPVOID  lpvCookie,
            REFIID  riid,
            LPVOID  pRemoteIFace,
            LPVOID  *ppv
            ) = 0;
    virtual HRESULT DeleteProxyStub (LPVOID lpvCookie) = 0;
    virtual HRESULT MakeRemoteMethodCall(
            LPVOID lpvCookie,
            REFIID riid,
            DWORD dwMethodId,
            LPVOID pvInBuf,
            DWORD dwInLen,
            LPVOID *ppvOutBuf,
            LPDWORD pdwOutLen
            ) = 0;
    virtual HRESULT GetDefaultImpl(
            REFIID riid,
            LPVOID *ppv
            ) = 0;
    virtual HRESULT ReleaseRemoteInterface (
            LPVOID  lpvCookie,
            IN IUnknown *pRemoteIFace,
            OUT ULONG *pulRefcount
            ) = 0;
    virtual LPVOID AllocInputBuffer(ULONG ulBufSize) = 0;
    virtual BOOL FreeInputBuffer(LPVOID lpv) = 0;
    virtual LPVOID AllocOutputBuffer(ULONG ulBufSize) = 0;
    virtual BOOL FreeOutputBuffer(LPVOID lpv) = 0;

    virtual HRESULT ProxyRelease (LPVOID pInterface,ULONG *pulRefCount) = 0;
    virtual HRESULT ProxyAddRef(LPVOID pInterface,ULONG *pulRefCount) = 0;
};


// {DAAC2F50-D4A6-11d3-B2D5-00D0B723357C}
DEFINE_GUID(
    IID_IRDSProxy,
    0xdaac2f50, 0xd4a6, 0x11d3, 0xb2, 0xd5, 0x0, 0xd0, 0xb7, 0x23, 0x35, 0x7c
    );

interface IRDSProxy
{
    virtual HRESULT STDMETHODCALLTYPE SetProxyInfo(IPSManager  *pPSManager,
                                                   LPVOID      pCookie) = 0;
    virtual HRESULT STDMETHODCALLTYPE ProxyQueryInterface(REFIID riid, void **ppv) = 0;
    virtual VOID STDMETHODCALLTYPE ReleaseObject() = 0;
};


// {DAAC2F51-D4A6-11d3-B2D5-00D0B723357C}
DEFINE_GUID(
    IID_IRDSStub,
    0xdaac2f51, 0xd4a6, 0x11d3, 0xb2, 0xd5, 0x0, 0xd0, 0xb7, 0x23, 0x35, 0x7c
    );

interface IRDSStub
{
    virtual HRESULT STDMETHODCALLTYPE SetStubInfo(IPSManager *pPSMgr,
                                                  LPVOID lpvCookie,
                                                  LPVOID pvTarget) = 0;

    virtual HRESULT STDMETHODCALLTYPE GetTarget(LPVOID *ppvTarget) = 0;
    virtual VOID STDMETHODCALLTYPE MakeMethodCall (
            REFIID iid,
            DWORD dwMethodId,
            LPVOID pvInBuf,
            DWORD dwInBufSize,
            LPVOID *ppvOutBuf,
            PDWORD pdwOutBufSize
            ) = 0;
    virtual VOID STDMETHODCALLTYPE ReleaseObject() = 0;
};


// {642410D0-E651-11d3-B0F6-00508B012095}
DEFINE_GUID(
    IID_IDefUnknown,
    0x642410d0, 0xe651, 0x11d3, 0xb0, 0xf6, 0x0, 0x50, 0x8b, 0x1, 0x20, 0x95
    );

interface IDefUnknown
{
    virtual HRESULT STDMETHODCALLTYPE DefQueryInterface(
            LPVOID lpvCookie,
            REFIID riid,
            void **ppvObject
            ) = 0;
    virtual ULONG STDMETHODCALLTYPE DefAddRef(LPVOID lpv) = 0;
    virtual ULONG STDMETHODCALLTYPE DefRelease(LPVOID lpv) = 0;
};

#ifdef __cplusplus
    extern "C"
    {
#endif

HRESULT CreateDeviceManager(
        HWND hParentWnd,
        GUID *pguidPlatform,
        GUID *pguidDevice,
        IRDSDeviceManager **ppDeviceManager,
        WCHAR * wszRCOMSvr = NULL,
		WCHAR * wszCmdLine = NULL,
        GUID StreamGuid = GUID_NULL
        );

#ifdef __cplusplus
    }
#endif

#endif  // _RDS_H_

⌨️ 快捷键说明

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