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

📄 classfactory_ps.cpp

📁 VXWORKS源代码
💻 CPP
字号:
/* ClassFactory_ps.cpp - IClassFactory proxy/stubs *//* Copyright (c) 1999-2001 Wind River Systems, Inc. *//*modification history--------------------01b,31jul01,dbs  fix p/s autoreg mechanism01a,13jul01,dbs  added modhist, commentsDESCRIPTION:This file was originally generated by WIDL, but now is maintained 'byhand' since the requirements for marshaling IClassFactory aredifficult. It has [marshal_as] attributes which WIDL does not handle,and so it needs to be modified to work as it should. SeecomCoreType.idl for a better description of how this interface shouldbe dealt with during marshaling of the CreateInstance() method.*/#define __WIDL_PROXY_STUB 0x0200#include "dcomProxy.h"#include "comCoreTypes.h"#include <string.h>extern "C" int include_ClassFactory () {return 0;}NdrTypeDesc StructDesc__GUID(NDRTYPES&);HRESULT STDMETHODCALLTYPE IClassFactory_CreateInstance_vxproxy (IClassFactory* pThis, IUnknown* pUnkOuter, REFIID riid, void** ppvObject);HRESULT STDMETHODCALLTYPE IClassFactory_CreateInstance_vxstub (IClassFactory* pitf, RPC_STUB_MSG& msg);HRESULT STDMETHODCALLTYPE IClassFactory_LockServer_vxproxy (IClassFactory* pThis, BOOL fLock);HRESULT STDMETHODCALLTYPE IClassFactory_LockServer_vxstub (IClassFactory* pitf, RPC_STUB_MSG& msg);HRESULT STDMETHODCALLTYPE IClassFactory_CreateInstance_vxproxy (IClassFactory* pThis, IUnknown*, REFIID riid, void** ppvObject)    {    RPC_PROXY_MSG	msg (IID_IClassFactory, RpcMode::OBJECT, 3, pThis);    NDRTYPES		ndrtypes;    HRESULT		hrMethod;    HRESULT		hr;    NdrMarshalStream* pms = msg.marshalStreamGet ();    /*hr=widlMarshal (&pUnkOuter, pms, ndrtypes.interfaceptr_t (IID_IUnknown)); if (FAILED(hr)) return hr;*/    hr=widlMarshal (&riid, pms, StructDesc__GUID (ndrtypes)); if (FAILED(hr)) return hr;    hr = msg.SendReceive (); if (FAILED (hr)) return hr;    NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();    hr=widlUnmarshal (&ppvObject, pus, ndrtypes.refptr_t(ndrtypes.interfaceptr_t (riid))); if (FAILED(hr)) return hr;    hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());    if (FAILED(hr))        return hr;    return hrMethod;    }HRESULT STDMETHODCALLTYPE IClassFactory_CreateInstance_vxstub (IClassFactory* pitf, RPC_STUB_MSG& msg)    {    NDRTYPES	ndrtypes;    HRESULT	hr;    HRESULT	hrMethod;    IID riid;    void* ppvObject_tmp;    void** ppvObject = &ppvObject_tmp;    NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();    /*hr=widlUnmarshal (&pUnkOuter, pus, ndrtypes.interfaceptr_t (IID_IUnknown)); if (FAILED(hr)) return hr;*/    hr=widlUnmarshal (&riid, pus, StructDesc__GUID (ndrtypes)); if (FAILED(hr)) return hr;    hrMethod = pitf->CreateInstance (0, riid, ppvObject);    NdrMarshalStream* pms = msg.marshalStreamGet ();    hr=widlMarshal (&ppvObject, pms, ndrtypes.refptr_t(ndrtypes.interfaceptr_t (riid))); if (FAILED(hr)) return hr;    hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());    if (FAILED(hr))        return hr;    ((IUnknown*) (*ppvObject))->Release ();    return hrMethod;    }HRESULT STDMETHODCALLTYPE IClassFactory_LockServer_vxproxy (IClassFactory* pThis, BOOL fLock)    {    RPC_PROXY_MSG	msg (IID_IClassFactory, RpcMode::OBJECT, 4, pThis);    NDRTYPES		ndrtypes;    HRESULT		hrMethod;    HRESULT		hr;    NdrMarshalStream* pms = msg.marshalStreamGet ();    hr=widlMarshal (&fLock, pms, ndrtypes.int_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 IClassFactory_LockServer_vxstub (IClassFactory* pitf, RPC_STUB_MSG& msg)    {    NDRTYPES	ndrtypes;    HRESULT	hr;    HRESULT	hrMethod;    BOOL fLock;    NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();    hr=widlUnmarshal (&fLock, pus, ndrtypes.int_t ()); if (FAILED(hr)) return hr;    hrMethod = pitf->LockServer (fLock);    NdrMarshalStream* pms = msg.marshalStreamGet ();    hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());    if (FAILED(hr))        return hr;    return hrMethod;    }COM_VTABLE(IClassFactory) IClassFactory_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(&IClassFactory_CreateInstance_vxproxy),    COM_VTBL_METHOD(&IClassFactory_LockServer_vxproxy),    };const PFN_ORPC_STUB stub_functbl_IClassFactory [] =    {    0,0,0,    (PFN_ORPC_STUB) IClassFactory_CreateInstance_vxstub,    (PFN_ORPC_STUB) IClassFactory_LockServer_vxstub,    };EXTERN_C const VXDCOM_STUB_DISPTBL IClassFactory_vxstub_disptbl =    {    5,    stub_functbl_IClassFactory    };VXDCOM_PS_AUTOREGISTER(IClassFactory);

⌨️ 快捷键说明

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