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

📄 opccomn_ps.cpp

📁 vxworks操作系统的源代码 供研究学习
💻 CPP
📖 第 1 页 / 共 2 页
字号:
    NDRTYPES		ndrtypes;    HRESULT		hrMethod;    HRESULT		hr;    NdrMarshalStream* pms = msg.marshalStreamGet ();    hr=widlMarshal (&szName, pms, ndrtypes.refptr_t(ndrtypes.wstring_t ())); if (FAILED(hr)) return hr;    hr = msg.SendReceive (); if (FAILED (hr)) return hr;    NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();    hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());    if (FAILED(hr))        return hr;    return hrMethod;    }HRESULT STDMETHODCALLTYPE IOPCCommon_SetClientName_vxstub (IOPCCommon* pitf, RPC_STUB_MSG& msg)    {    NDRTYPES	ndrtypes;    HRESULT	hr;    HRESULT	hrMethod;    NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();    LPCWSTR szName;    hr=widlUnmarshal (&szName, pus, ndrtypes.refptr_t(ndrtypes.wstring_t ())); if (FAILED(hr)) return hr;    hrMethod = pitf->SetClientName (szName);    NdrMarshalStream* pms = msg.marshalStreamGet ();    hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());    if (FAILED(hr))        return hr;    return S_OK;    }COM_VTABLE(IOPCCommon) IOPCCommon_vxproxy_vtbl = {    COM_VTBL_HEADER    COM_VTBL_METHOD(&IUnknown_QueryInterface_vxproxy),    COM_VTBL_METHOD(&IUnknown_AddRef_vxproxy),    COM_VTBL_METHOD(&IUnknown_Release_vxproxy),    COM_VTBL_METHOD(&IOPCCommon_SetLocaleID_vxproxy),    COM_VTBL_METHOD(&IOPCCommon_GetLocaleID_vxproxy),    COM_VTBL_METHOD(&IOPCCommon_QueryAvailableLocaleIDs_vxproxy),    COM_VTBL_METHOD(&IOPCCommon_GetErrorString_vxproxy),    COM_VTBL_METHOD(&IOPCCommon_SetClientName_vxproxy),    };const PFN_ORPC_STUB stub_functbl_IOPCCommon [] =    {    0,0,0,    (PFN_ORPC_STUB) IOPCCommon_SetLocaleID_vxstub,    (PFN_ORPC_STUB) IOPCCommon_GetLocaleID_vxstub,    (PFN_ORPC_STUB) IOPCCommon_QueryAvailableLocaleIDs_vxstub,    (PFN_ORPC_STUB) IOPCCommon_GetErrorString_vxstub,    (PFN_ORPC_STUB) IOPCCommon_SetClientName_vxstub,    };EXTERN_C const VXDCOM_STUB_DISPTBL IOPCCommon_vxstub_disptbl =    {    8,    stub_functbl_IOPCCommon    };VXDCOM_PS_AUTOREGISTER(IOPCCommon);HRESULT STDMETHODCALLTYPE IOPCServerList_EnumClassesOfCategories_vxproxy (IOPCServerList* pThis, ULONG cImplemented, CATID* rgcatidImpl, ULONG cRequired, CATID* rgcatidReq, IEnumGUID** ppenumClsid)    {    RPC_PROXY_MSG	msg (IID_IOPCServerList, RpcMode::OBJECT, 3, pThis);    NDRTYPES		ndrtypes;    HRESULT		hrMethod;    HRESULT		hr;    NdrMarshalStream* pms = msg.marshalStreamGet ();    hr=widlMarshal (&cImplemented, pms, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;    hr=widlMarshal (&rgcatidImpl, pms, ndrtypes.refptr_t(ndrtypes.carray_t(StructDesc__GUID (ndrtypes), NDR_SIZEOF(CATID), cImplemented))); if (FAILED(hr)) return hr;    hr=widlMarshal (&cRequired, pms, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;    hr=widlMarshal (&rgcatidReq, pms, ndrtypes.refptr_t(ndrtypes.carray_t(StructDesc__GUID (ndrtypes), NDR_SIZEOF(CATID), cRequired))); if (FAILED(hr)) return hr;    hr = msg.SendReceive (); if (FAILED (hr)) return hr;    NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();    hr=widlUnmarshal (&ppenumClsid, pus, ndrtypes.refptr_t(ndrtypes.interfaceptr_t (IID_IEnumGUID))); if (FAILED(hr)) return hr;    hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());    if (FAILED(hr))        return hr;    return hrMethod;    }HRESULT STDMETHODCALLTYPE IOPCServerList_EnumClassesOfCategories_vxstub (IOPCServerList* pitf, RPC_STUB_MSG& msg)    {    NDRTYPES	ndrtypes;    HRESULT	hr;    HRESULT	hrMethod;    NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();    ULONG cImplemented;    hr=widlUnmarshal (&cImplemented, pus, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;    CATID* rgcatidImpl;    hr=widlUnmarshal (&rgcatidImpl, pus, ndrtypes.refptr_t(ndrtypes.carray_t(StructDesc__GUID (ndrtypes), NDR_SIZEOF(CATID)))); if (FAILED(hr)) return hr;    ULONG cRequired;    hr=widlUnmarshal (&cRequired, pus, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;    CATID* rgcatidReq;    hr=widlUnmarshal (&rgcatidReq, pus, ndrtypes.refptr_t(ndrtypes.carray_t(StructDesc__GUID (ndrtypes), NDR_SIZEOF(CATID)))); if (FAILED(hr)) return hr;    IEnumGUID* ppenumClsid_tmp = 0;    IEnumGUID** ppenumClsid = &ppenumClsid_tmp;    hrMethod = pitf->EnumClassesOfCategories (cImplemented, rgcatidImpl, cRequired, rgcatidReq, ppenumClsid);    NdrMarshalStream* pms = msg.marshalStreamGet ();    hr=widlMarshal (&ppenumClsid, pms, ndrtypes.refptr_t(ndrtypes.interfaceptr_t (IID_IEnumGUID))); if (FAILED(hr)) return hr;    hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());    if (FAILED(hr))        return hr;    if ((*ppenumClsid)) {((*ppenumClsid))->Release ();};    return S_OK;    }HRESULT STDMETHODCALLTYPE IOPCServerList_GetClassDetails_vxproxy (IOPCServerList* pThis, REFCLSID clsid, LPOLESTR* ppszProgID, LPOLESTR* ppszUserType)    {    RPC_PROXY_MSG	msg (IID_IOPCServerList, RpcMode::OBJECT, 4, pThis);    NDRTYPES		ndrtypes;    HRESULT		hrMethod;    HRESULT		hr;    NdrMarshalStream* pms = msg.marshalStreamGet ();    hr=widlMarshal (&clsid, pms, StructDesc__GUID (ndrtypes)); if (FAILED(hr)) return hr;    hr = msg.SendReceive (); if (FAILED (hr)) return hr;    NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();    hr=widlUnmarshal (&ppszProgID, pus, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.wstring_t ()))); if (FAILED(hr)) return hr;    hr=widlUnmarshal (&ppszUserType, pus, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.wstring_t ()))); if (FAILED(hr)) return hr;    hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());    if (FAILED(hr))        return hr;    return hrMethod;    }HRESULT STDMETHODCALLTYPE IOPCServerList_GetClassDetails_vxstub (IOPCServerList* pitf, RPC_STUB_MSG& msg)    {    NDRTYPES	ndrtypes;    HRESULT	hr;    HRESULT	hrMethod;    NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();    CLSID clsid;    hr=widlUnmarshal (&clsid, pus, StructDesc__GUID (ndrtypes)); if (FAILED(hr)) return hr;    LPOLESTR ppszProgID_tmp;    LPOLESTR* ppszProgID = &ppszProgID_tmp;    LPOLESTR ppszUserType_tmp;    LPOLESTR* ppszUserType = &ppszUserType_tmp;    hrMethod = pitf->GetClassDetails (clsid, ppszProgID, ppszUserType);    NdrMarshalStream* pms = msg.marshalStreamGet ();    hr=widlMarshal (&ppszProgID, pms, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.wstring_t ()))); if (FAILED(hr)) return hr;    hr=widlMarshal (&ppszUserType, pms, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.wstring_t ()))); if (FAILED(hr)) return hr;    hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());    if (FAILED(hr))        return hr;    if ((*ppszProgID)) {CoTaskMemFree ((*ppszProgID));}if ((*ppszUserType)) {CoTaskMemFree ((*ppszUserType));};    return S_OK;    }HRESULT STDMETHODCALLTYPE IOPCServerList_CLSIDFromProgID_vxproxy (IOPCServerList* pThis, LPCOLESTR szProgId, LPCLSID clsid)    {    RPC_PROXY_MSG	msg (IID_IOPCServerList, RpcMode::OBJECT, 5, pThis);    NDRTYPES		ndrtypes;    HRESULT		hrMethod;    HRESULT		hr;    NdrMarshalStream* pms = msg.marshalStreamGet ();    hr=widlMarshal (&szProgId, pms, ndrtypes.refptr_t(ndrtypes.wstring_t ())); if (FAILED(hr)) return hr;    hr = msg.SendReceive (); if (FAILED (hr)) return hr;    NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();    hr=widlUnmarshal (&clsid, pus, ndrtypes.refptr_t(StructDesc__GUID (ndrtypes))); if (FAILED(hr)) return hr;    hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());    if (FAILED(hr))        return hr;    return hrMethod;    }HRESULT STDMETHODCALLTYPE IOPCServerList_CLSIDFromProgID_vxstub (IOPCServerList* pitf, RPC_STUB_MSG& msg)    {    NDRTYPES	ndrtypes;    HRESULT	hr;    HRESULT	hrMethod;    NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();    LPCOLESTR szProgId;    hr=widlUnmarshal (&szProgId, pus, ndrtypes.refptr_t(ndrtypes.wstring_t ())); if (FAILED(hr)) return hr;    CLSID clsid_tmp;    LPCLSID clsid = &clsid_tmp;    hrMethod = pitf->CLSIDFromProgID (szProgId, clsid);    NdrMarshalStream* pms = msg.marshalStreamGet ();    hr=widlMarshal (&clsid, pms, ndrtypes.refptr_t(StructDesc__GUID (ndrtypes))); if (FAILED(hr)) return hr;    hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());    if (FAILED(hr))        return hr;    return S_OK;    }COM_VTABLE(IOPCServerList) IOPCServerList_vxproxy_vtbl = {    COM_VTBL_HEADER    COM_VTBL_METHOD(&IUnknown_QueryInterface_vxproxy),    COM_VTBL_METHOD(&IUnknown_AddRef_vxproxy),    COM_VTBL_METHOD(&IUnknown_Release_vxproxy),    COM_VTBL_METHOD(&IOPCServerList_EnumClassesOfCategories_vxproxy),    COM_VTBL_METHOD(&IOPCServerList_GetClassDetails_vxproxy),    COM_VTBL_METHOD(&IOPCServerList_CLSIDFromProgID_vxproxy),    };const PFN_ORPC_STUB stub_functbl_IOPCServerList [] =    {    0,0,0,    (PFN_ORPC_STUB) IOPCServerList_EnumClassesOfCategories_vxstub,    (PFN_ORPC_STUB) IOPCServerList_GetClassDetails_vxstub,    (PFN_ORPC_STUB) IOPCServerList_CLSIDFromProgID_vxstub,    };EXTERN_C const VXDCOM_STUB_DISPTBL IOPCServerList_vxstub_disptbl =    {    6,    stub_functbl_IOPCServerList    };VXDCOM_PS_AUTOREGISTER(IOPCServerList);

⌨️ 快捷键说明

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