opcda_ps.cpp
上传用户:nvosite88
上传日期:2007-01-17
资源大小:4983k
文件大小:121k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* opcda_ps.cpp generated by WIDL Version 2.2.1 on 06-Dec-01 at 11:55:00 AM */
  2. #define __WIDL_PROXY_STUB 0x0200
  3. #include "dcomProxy.h"
  4. #include "opcda.h"
  5. #include <string.h>
  6. extern "C" int include_opcda () {return 0;}
  7. NdrTypeDesc StructDesc_tagOPCGROUPHEADER (NDRTYPES& ndrtypes)
  8.     {
  9.     NdrMemberInfo m [] =
  10.         {
  11.         NDR_MEMBER(tagOPCGROUPHEADER, dwSize, ndrtypes.ulong_t ()),
  12.         NDR_MEMBER(tagOPCGROUPHEADER, dwItemCount, ndrtypes.ulong_t ()),
  13.         NDR_MEMBER(tagOPCGROUPHEADER, hClientGroup, ndrtypes.ulong_t ()),
  14.         NDR_MEMBER(tagOPCGROUPHEADER, dwTransactionID, ndrtypes.ulong_t ()),
  15.         NDR_MEMBER(tagOPCGROUPHEADER, hrStatus, ndrtypes.long_t ()),
  16.         };
  17.     return ndrtypes.struct_t (5, m);
  18.     }
  19. NdrTypeDesc StructDesc__FILETIME(NDRTYPES&);
  20. NdrTypeDesc StructDesc_tagOPCITEMHEADER1 (NDRTYPES& ndrtypes)
  21.     {
  22.     NdrMemberInfo m [] =
  23.         {
  24.         NDR_MEMBER(tagOPCITEMHEADER1, hClient, ndrtypes.ulong_t ()),
  25.         NDR_MEMBER(tagOPCITEMHEADER1, dwValueOffset, ndrtypes.ulong_t ()),
  26.         NDR_MEMBER(tagOPCITEMHEADER1, wQuality, ndrtypes.short_t ()),
  27.         NDR_MEMBER(tagOPCITEMHEADER1, wReserved, ndrtypes.short_t ()),
  28.         NDR_MEMBER(tagOPCITEMHEADER1, ftTimeStampItem, StructDesc__FILETIME (ndrtypes)),
  29.         };
  30.     return ndrtypes.struct_t (5, m);
  31.     }
  32. NdrTypeDesc StructDesc_tagOPCITEMHEADER2 (NDRTYPES& ndrtypes)
  33.     {
  34.     NdrMemberInfo m [] =
  35.         {
  36.         NDR_MEMBER(tagOPCITEMHEADER2, hClient, ndrtypes.ulong_t ()),
  37.         NDR_MEMBER(tagOPCITEMHEADER2, dwValueOffset, ndrtypes.ulong_t ()),
  38.         NDR_MEMBER(tagOPCITEMHEADER2, wQuality, ndrtypes.short_t ()),
  39.         NDR_MEMBER(tagOPCITEMHEADER2, wReserved, ndrtypes.short_t ()),
  40.         };
  41.     return ndrtypes.struct_t (4, m);
  42.     }
  43. NdrTypeDesc StructDesc_tagOPCGROUPHEADERWRITE (NDRTYPES& ndrtypes)
  44.     {
  45.     NdrMemberInfo m [] =
  46.         {
  47.         NDR_MEMBER(tagOPCGROUPHEADERWRITE, dwItemCount, ndrtypes.ulong_t ()),
  48.         NDR_MEMBER(tagOPCGROUPHEADERWRITE, hClientGroup, ndrtypes.ulong_t ()),
  49.         NDR_MEMBER(tagOPCGROUPHEADERWRITE, dwTransactionID, ndrtypes.ulong_t ()),
  50.         NDR_MEMBER(tagOPCGROUPHEADERWRITE, hrStatus, ndrtypes.long_t ()),
  51.         };
  52.     return ndrtypes.struct_t (4, m);
  53.     }
  54. NdrTypeDesc StructDesc_tagOPCITEMHEADERWRITE (NDRTYPES& ndrtypes)
  55.     {
  56.     NdrMemberInfo m [] =
  57.         {
  58.         NDR_MEMBER(tagOPCITEMHEADERWRITE, hClient, ndrtypes.ulong_t ()),
  59.         NDR_MEMBER(tagOPCITEMHEADERWRITE, dwError, ndrtypes.long_t ()),
  60.         };
  61.     return ndrtypes.struct_t (2, m);
  62.     }
  63. NdrTypeDesc StructDesc__FILETIME(NDRTYPES&);
  64. NdrTypeDesc StructDesc_tagVARIANT(NDRTYPES&);
  65. NdrTypeDesc StructDesc_tagOPCITEMSTATE (NDRTYPES& ndrtypes)
  66.     {
  67.     NdrMemberInfo m [] =
  68.         {
  69.         NDR_MEMBER(tagOPCITEMSTATE, hClient, ndrtypes.ulong_t ()),
  70.         NDR_MEMBER(tagOPCITEMSTATE, ftTimeStamp, StructDesc__FILETIME (ndrtypes)),
  71.         NDR_MEMBER(tagOPCITEMSTATE, wQuality, ndrtypes.short_t ()),
  72.         NDR_MEMBER(tagOPCITEMSTATE, wReserved, ndrtypes.short_t ()),
  73.         NDR_MEMBER(tagOPCITEMSTATE, vDataValue, ndrtypes.variant_t ()),
  74.         };
  75.     return ndrtypes.struct_t (5, m);
  76.     }
  77. NdrTypeDesc StructDesc__FILETIME(NDRTYPES&);
  78. NdrTypeDesc StructDesc__FILETIME(NDRTYPES&);
  79. NdrTypeDesc StructDesc__FILETIME(NDRTYPES&);
  80. NdrTypeDesc StructDesc_tagOPCSERVERSTATUS (NDRTYPES& ndrtypes)
  81.     {
  82.     NdrMemberInfo m [] =
  83.         {
  84.         NDR_MEMBER(tagOPCSERVERSTATUS, ftStartTime, StructDesc__FILETIME (ndrtypes)),
  85.         NDR_MEMBER(tagOPCSERVERSTATUS, ftCurrentTime, StructDesc__FILETIME (ndrtypes)),
  86.         NDR_MEMBER(tagOPCSERVERSTATUS, ftLastUpdateTime, StructDesc__FILETIME (ndrtypes)),
  87.         NDR_MEMBER(tagOPCSERVERSTATUS, dwServerState, ndrtypes.enum_t ()),
  88.         NDR_MEMBER(tagOPCSERVERSTATUS, dwGroupCount, ndrtypes.ulong_t ()),
  89.         NDR_MEMBER(tagOPCSERVERSTATUS, dwBandWidth, ndrtypes.ulong_t ()),
  90.         NDR_MEMBER(tagOPCSERVERSTATUS, wMajorVersion, ndrtypes.short_t ()),
  91.         NDR_MEMBER(tagOPCSERVERSTATUS, wMinorVersion, ndrtypes.short_t ()),
  92.         NDR_MEMBER(tagOPCSERVERSTATUS, wBuildNumber, ndrtypes.short_t ()),
  93.         NDR_MEMBER(tagOPCSERVERSTATUS, wReserved, ndrtypes.short_t ()),
  94.         NDR_MEMBER(tagOPCSERVERSTATUS, szVendorInfo, ndrtypes.pointer_t(ndrtypes.wstring_t ())),
  95.         };
  96.     return ndrtypes.struct_t (11, m);
  97.     }
  98. NdrTypeDesc StructDesc_tagOPCITEMDEF (NDRTYPES& ndrtypes)
  99.     {
  100.     NdrMemberInfo m [] =
  101.         {
  102.         NDR_MEMBER(tagOPCITEMDEF, szAccessPath, ndrtypes.pointer_t(ndrtypes.wstring_t ())),
  103.         NDR_MEMBER(tagOPCITEMDEF, szItemID, ndrtypes.pointer_t(ndrtypes.wstring_t ())),
  104.         NDR_MEMBER(tagOPCITEMDEF, bActive, ndrtypes.int_t ()),
  105.         NDR_MEMBER(tagOPCITEMDEF, hClient, ndrtypes.ulong_t ()),
  106.         NDR_MEMBER(tagOPCITEMDEF, dwBlobSize, ndrtypes.ulong_t ()),
  107.         NDR_MEMBERX(tagOPCITEMDEF, pBlob, ndrtypes.pointer_t(ndrtypes.carray_t(ndrtypes.uchar_t (), NDR_SIZEOF(BYTE))), 4),
  108.         NDR_MEMBER(tagOPCITEMDEF, vtRequestedDataType, ndrtypes.ushort_t ()),
  109.         NDR_MEMBER(tagOPCITEMDEF, wReserved, ndrtypes.short_t ()),
  110.         };
  111.     return ndrtypes.struct_t (8, m, 4);
  112.     }
  113. NdrTypeDesc StructDesc_tagVARIANT(NDRTYPES&);
  114. NdrTypeDesc StructDesc_tagOPCITEMATTRIBUTES (NDRTYPES& ndrtypes)
  115.     {
  116.     NdrMemberInfo m [] =
  117.         {
  118.         NDR_MEMBER(tagOPCITEMATTRIBUTES, szAccessPath, ndrtypes.pointer_t(ndrtypes.wstring_t ())),
  119.         NDR_MEMBER(tagOPCITEMATTRIBUTES, szItemID, ndrtypes.pointer_t(ndrtypes.wstring_t ())),
  120.         NDR_MEMBER(tagOPCITEMATTRIBUTES, bActive, ndrtypes.int_t ()),
  121.         NDR_MEMBER(tagOPCITEMATTRIBUTES, hClient, ndrtypes.ulong_t ()),
  122.         NDR_MEMBER(tagOPCITEMATTRIBUTES, hServer, ndrtypes.ulong_t ()),
  123.         NDR_MEMBER(tagOPCITEMATTRIBUTES, dwAccessRights, ndrtypes.ulong_t ()),
  124.         NDR_MEMBER(tagOPCITEMATTRIBUTES, dwBlobSize, ndrtypes.ulong_t ()),
  125.         NDR_MEMBERX(tagOPCITEMATTRIBUTES, pBlob, ndrtypes.pointer_t(ndrtypes.carray_t(ndrtypes.uchar_t (), NDR_SIZEOF(BYTE))), 6),
  126.         NDR_MEMBER(tagOPCITEMATTRIBUTES, vtRequestedDataType, ndrtypes.ushort_t ()),
  127.         NDR_MEMBER(tagOPCITEMATTRIBUTES, vtCanonicalDataType, ndrtypes.ushort_t ()),
  128.         NDR_MEMBER(tagOPCITEMATTRIBUTES, dwEUType, ndrtypes.enum_t ()),
  129.         NDR_MEMBER(tagOPCITEMATTRIBUTES, vEUInfo, ndrtypes.variant_t ()),
  130.         };
  131.     return ndrtypes.struct_t (12, m, 6);
  132.     }
  133. NdrTypeDesc StructDesc_tagOPCITEMRESULT (NDRTYPES& ndrtypes)
  134.     {
  135.     NdrMemberInfo m [] =
  136.         {
  137.         NDR_MEMBER(tagOPCITEMRESULT, hServer, ndrtypes.ulong_t ()),
  138.         NDR_MEMBER(tagOPCITEMRESULT, vtCanonicalDataType, ndrtypes.ushort_t ()),
  139.         NDR_MEMBER(tagOPCITEMRESULT, wReserved, ndrtypes.short_t ()),
  140.         NDR_MEMBER(tagOPCITEMRESULT, dwAccessRights, ndrtypes.ulong_t ()),
  141.         NDR_MEMBER(tagOPCITEMRESULT, dwBlobSize, ndrtypes.ulong_t ()),
  142.         NDR_MEMBERX(tagOPCITEMRESULT, pBlob, ndrtypes.pointer_t(ndrtypes.carray_t(ndrtypes.uchar_t (), NDR_SIZEOF(BYTE))), 4),
  143.         };
  144.     return ndrtypes.struct_t (6, m, 4);
  145.     }
  146. NdrTypeDesc StructDesc__GUID(NDRTYPES&);
  147. NdrTypeDesc StructDesc__GUID(NDRTYPES&);
  148. NdrTypeDesc StructDesc_tagOPCSERVERSTATUS(NDRTYPES&);
  149. NdrTypeDesc StructDesc__GUID(NDRTYPES&);
  150. NdrTypeDesc StructDesc__GUID(NDRTYPES&);
  151. NdrTypeDesc StructDesc__GUID(NDRTYPES&);
  152. NdrTypeDesc StructDesc_tagOPCITEMSTATE(NDRTYPES&);
  153. NdrTypeDesc StructDesc_tagVARIANT(NDRTYPES&);
  154. NdrTypeDesc StructDesc_tagVARIANT(NDRTYPES&);
  155. NdrTypeDesc StructDesc_tagOPCITEMDEF(NDRTYPES&);
  156. NdrTypeDesc StructDesc_tagOPCITEMRESULT(NDRTYPES&);
  157. NdrTypeDesc StructDesc_tagOPCITEMDEF(NDRTYPES&);
  158. NdrTypeDesc StructDesc_tagOPCITEMRESULT(NDRTYPES&);
  159. NdrTypeDesc StructDesc__GUID(NDRTYPES&);
  160. NdrTypeDesc StructDesc_tagOPCITEMATTRIBUTES(NDRTYPES&);
  161. NdrTypeDesc StructDesc_tagVARIANT(NDRTYPES&);
  162. NdrTypeDesc StructDesc__FILETIME(NDRTYPES&);
  163. NdrTypeDesc StructDesc_tagVARIANT(NDRTYPES&);
  164. NdrTypeDesc StructDesc__FILETIME(NDRTYPES&);
  165. NdrTypeDesc StructDesc_tagVARIANT(NDRTYPES&);
  166. NdrTypeDesc StructDesc_tagVARIANT(NDRTYPES&);
  167. HRESULT STDMETHODCALLTYPE IOPCServer_AddGroup_vxproxy (IOPCServer* pThis, LPCWSTR szName, BOOL bActive, DWORD dwRequestedUpdateRate, OPCHANDLE hClientGroup, LONG* pTimeBias, FLOAT* pPercentDeadband, DWORD dwLCID, OPCHANDLE* phServerGroup, DWORD* pRevisedUpdateRate, REFIID riid, LPUNKNOWN* ppUnk)
  168.     {
  169.     RPC_PROXY_MSG msg (IID_IOPCServer, RpcMode::OBJECT, 3, pThis);
  170.     NDRTYPES ndrtypes;
  171.     HRESULT hrMethod;
  172.     HRESULT hr;
  173.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  174.     hr=widlMarshal (&szName, pms, ndrtypes.refptr_t(ndrtypes.wstring_t ())); if (FAILED(hr)) return hr;
  175.     hr=widlMarshal (&bActive, pms, ndrtypes.int_t ()); if (FAILED(hr)) return hr;
  176.     hr=widlMarshal (&dwRequestedUpdateRate, pms, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  177.     hr=widlMarshal (&hClientGroup, pms, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  178.     hr=widlMarshal (&pTimeBias, pms, ndrtypes.pointer_t(ndrtypes.long_t ())); if (FAILED(hr)) return hr;
  179.     hr=widlMarshal (&pPercentDeadband, pms, ndrtypes.pointer_t(ndrtypes.float_t ())); if (FAILED(hr)) return hr;
  180.     hr=widlMarshal (&dwLCID, pms, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  181.     hr=widlMarshal (&riid, pms, StructDesc__GUID (ndrtypes)); if (FAILED(hr)) return hr;
  182.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  183.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  184.     hr=widlUnmarshal (&phServerGroup, pus, ndrtypes.refptr_t(ndrtypes.ulong_t ())); if (FAILED(hr)) return hr;
  185.     hr=widlUnmarshal (&pRevisedUpdateRate, pus, ndrtypes.refptr_t(ndrtypes.ulong_t ())); if (FAILED(hr)) return hr;
  186.     hr=widlUnmarshal (&ppUnk, pus, ndrtypes.refptr_t(ndrtypes.interfaceptr_t (IID_IUnknown))); if (FAILED(hr)) return hr;
  187.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  188.     if (FAILED(hr))
  189.         return hr;
  190.     return hrMethod;
  191.     }
  192. HRESULT STDMETHODCALLTYPE IOPCServer_AddGroup_vxstub (IOPCServer* pitf, RPC_STUB_MSG& msg)
  193.     {
  194.     NDRTYPES ndrtypes;
  195.     HRESULT hr;
  196.     HRESULT hrMethod;
  197.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  198.     LPCWSTR szName;
  199.     hr=widlUnmarshal (&szName, pus, ndrtypes.refptr_t(ndrtypes.wstring_t ())); if (FAILED(hr)) return hr;
  200.     BOOL bActive;
  201.     hr=widlUnmarshal (&bActive, pus, ndrtypes.int_t ()); if (FAILED(hr)) return hr;
  202.     DWORD dwRequestedUpdateRate;
  203.     hr=widlUnmarshal (&dwRequestedUpdateRate, pus, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  204.     OPCHANDLE hClientGroup;
  205.     hr=widlUnmarshal (&hClientGroup, pus, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  206.     LONG* pTimeBias;
  207.     hr=widlUnmarshal (&pTimeBias, pus, ndrtypes.pointer_t(ndrtypes.long_t ())); if (FAILED(hr)) return hr;
  208.     FLOAT* pPercentDeadband;
  209.     hr=widlUnmarshal (&pPercentDeadband, pus, ndrtypes.pointer_t(ndrtypes.float_t ())); if (FAILED(hr)) return hr;
  210.     DWORD dwLCID;
  211.     hr=widlUnmarshal (&dwLCID, pus, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  212.     IID riid;
  213.     hr=widlUnmarshal (&riid, pus, StructDesc__GUID (ndrtypes)); if (FAILED(hr)) return hr;
  214.     OPCHANDLE phServerGroup_tmp;
  215.     OPCHANDLE* phServerGroup = &phServerGroup_tmp;
  216.     DWORD pRevisedUpdateRate_tmp;
  217.     DWORD* pRevisedUpdateRate = &pRevisedUpdateRate_tmp;
  218.     LPUNKNOWN ppUnk_tmp;
  219.     LPUNKNOWN* ppUnk = &ppUnk_tmp;
  220.     hrMethod = pitf->AddGroup (szName, bActive, dwRequestedUpdateRate, hClientGroup, pTimeBias, pPercentDeadband, dwLCID, phServerGroup, pRevisedUpdateRate, riid, ppUnk);
  221.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  222.     hr=widlMarshal (&phServerGroup, pms, ndrtypes.refptr_t(ndrtypes.ulong_t ())); if (FAILED(hr)) return hr;
  223.     hr=widlMarshal (&pRevisedUpdateRate, pms, ndrtypes.refptr_t(ndrtypes.ulong_t ())); if (FAILED(hr)) return hr;
  224.     hr=widlMarshal (&ppUnk, pms, ndrtypes.refptr_t(ndrtypes.interfaceptr_t (IID_IUnknown))); if (FAILED(hr)) return hr;
  225.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  226.     if (FAILED(hr))
  227.         return hr;
  228.     if ((*ppUnk)) {((*ppUnk))->Release ();};
  229.     return S_OK;
  230.     }
  231. HRESULT STDMETHODCALLTYPE IOPCServer_GetErrorString_vxproxy (IOPCServer* pThis, HRESULT dwError, LCID dwLocale, LPWSTR* ppString)
  232.     {
  233.     RPC_PROXY_MSG msg (IID_IOPCServer, RpcMode::OBJECT, 4, pThis);
  234.     NDRTYPES ndrtypes;
  235.     HRESULT hrMethod;
  236.     HRESULT hr;
  237.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  238.     hr=widlMarshal (&dwError, pms, ndrtypes.long_t ()); if (FAILED(hr)) return hr;
  239.     hr=widlMarshal (&dwLocale, pms, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  240.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  241.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  242.     hr=widlUnmarshal (&ppString, pus, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.wstring_t ()))); if (FAILED(hr)) return hr;
  243.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  244.     if (FAILED(hr))
  245.         return hr;
  246.     return hrMethod;
  247.     }
  248. HRESULT STDMETHODCALLTYPE IOPCServer_GetErrorString_vxstub (IOPCServer* pitf, RPC_STUB_MSG& msg)
  249.     {
  250.     NDRTYPES ndrtypes;
  251.     HRESULT hr;
  252.     HRESULT hrMethod;
  253.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  254.     HRESULT dwError;
  255.     hr=widlUnmarshal (&dwError, pus, ndrtypes.long_t ()); if (FAILED(hr)) return hr;
  256.     LCID dwLocale;
  257.     hr=widlUnmarshal (&dwLocale, pus, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  258.     LPWSTR ppString_tmp;
  259.     LPWSTR* ppString = &ppString_tmp;
  260.     hrMethod = pitf->GetErrorString (dwError, dwLocale, ppString);
  261.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  262.     hr=widlMarshal (&ppString, pms, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.wstring_t ()))); if (FAILED(hr)) return hr;
  263.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  264.     if (FAILED(hr))
  265.         return hr;
  266.     if ((*ppString)) {CoTaskMemFree ((*ppString));};
  267.     return S_OK;
  268.     }
  269. HRESULT STDMETHODCALLTYPE IOPCServer_GetGroupByName_vxproxy (IOPCServer* pThis, LPCWSTR szName, REFIID riid, LPUNKNOWN* ppUnk)
  270.     {
  271.     RPC_PROXY_MSG msg (IID_IOPCServer, RpcMode::OBJECT, 5, pThis);
  272.     NDRTYPES ndrtypes;
  273.     HRESULT hrMethod;
  274.     HRESULT hr;
  275.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  276.     hr=widlMarshal (&szName, pms, ndrtypes.refptr_t(ndrtypes.wstring_t ())); if (FAILED(hr)) return hr;
  277.     hr=widlMarshal (&riid, pms, StructDesc__GUID (ndrtypes)); if (FAILED(hr)) return hr;
  278.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  279.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  280.     hr=widlUnmarshal (&ppUnk, pus, ndrtypes.refptr_t(ndrtypes.interfaceptr_t (IID_IUnknown))); if (FAILED(hr)) return hr;
  281.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  282.     if (FAILED(hr))
  283.         return hr;
  284.     return hrMethod;
  285.     }
  286. HRESULT STDMETHODCALLTYPE IOPCServer_GetGroupByName_vxstub (IOPCServer* pitf, RPC_STUB_MSG& msg)
  287.     {
  288.     NDRTYPES ndrtypes;
  289.     HRESULT hr;
  290.     HRESULT hrMethod;
  291.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  292.     LPCWSTR szName;
  293.     hr=widlUnmarshal (&szName, pus, ndrtypes.refptr_t(ndrtypes.wstring_t ())); if (FAILED(hr)) return hr;
  294.     IID riid;
  295.     hr=widlUnmarshal (&riid, pus, StructDesc__GUID (ndrtypes)); if (FAILED(hr)) return hr;
  296.     LPUNKNOWN ppUnk_tmp;
  297.     LPUNKNOWN* ppUnk = &ppUnk_tmp;
  298.     hrMethod = pitf->GetGroupByName (szName, riid, ppUnk);
  299.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  300.     hr=widlMarshal (&ppUnk, pms, ndrtypes.refptr_t(ndrtypes.interfaceptr_t (IID_IUnknown))); if (FAILED(hr)) return hr;
  301.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  302.     if (FAILED(hr))
  303.         return hr;
  304.     if ((*ppUnk)) {((*ppUnk))->Release ();};
  305.     return S_OK;
  306.     }
  307. HRESULT STDMETHODCALLTYPE IOPCServer_GetStatus_vxproxy (IOPCServer* pThis, OPCSERVERSTATUS** ppServerStatus)
  308.     {
  309.     RPC_PROXY_MSG msg (IID_IOPCServer, RpcMode::OBJECT, 6, pThis);
  310.     NDRTYPES ndrtypes;
  311.     HRESULT hrMethod;
  312.     HRESULT hr;
  313.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  314.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  315.     hr=widlUnmarshal (&ppServerStatus, pus, ndrtypes.refptr_t(ndrtypes.pointer_t(StructDesc_tagOPCSERVERSTATUS (ndrtypes)))); if (FAILED(hr)) return hr;
  316.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  317.     if (FAILED(hr))
  318.         return hr;
  319.     return hrMethod;
  320.     }
  321. HRESULT STDMETHODCALLTYPE IOPCServer_GetStatus_vxstub (IOPCServer* pitf, RPC_STUB_MSG& msg)
  322.     {
  323.     NDRTYPES ndrtypes;
  324.     HRESULT hr;
  325.     HRESULT hrMethod;
  326.     OPCSERVERSTATUS* ppServerStatus_tmp;
  327.     OPCSERVERSTATUS** ppServerStatus = &ppServerStatus_tmp;
  328.     hrMethod = pitf->GetStatus (ppServerStatus);
  329.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  330.     hr=widlMarshal (&ppServerStatus, pms, ndrtypes.refptr_t(ndrtypes.pointer_t(StructDesc_tagOPCSERVERSTATUS (ndrtypes)))); if (FAILED(hr)) return hr;
  331.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  332.     if (FAILED(hr))
  333.         return hr;
  334.     if ((*ppServerStatus)) {if ((*(*ppServerStatus)).szVendorInfo) {CoTaskMemFree ((*(*ppServerStatus)).szVendorInfo);}CoTaskMemFree ((*ppServerStatus));};
  335.     return S_OK;
  336.     }
  337. HRESULT STDMETHODCALLTYPE IOPCServer_RemoveGroup_vxproxy (IOPCServer* pThis, OPCHANDLE hServerGroup, BOOL bForce)
  338.     {
  339.     RPC_PROXY_MSG msg (IID_IOPCServer, RpcMode::OBJECT, 7, pThis);
  340.     NDRTYPES ndrtypes;
  341.     HRESULT hrMethod;
  342.     HRESULT hr;
  343.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  344.     hr=widlMarshal (&hServerGroup, pms, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  345.     hr=widlMarshal (&bForce, pms, ndrtypes.int_t ()); if (FAILED(hr)) return hr;
  346.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  347.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  348.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  349.     if (FAILED(hr))
  350.         return hr;
  351.     return hrMethod;
  352.     }
  353. HRESULT STDMETHODCALLTYPE IOPCServer_RemoveGroup_vxstub (IOPCServer* pitf, RPC_STUB_MSG& msg)
  354.     {
  355.     NDRTYPES ndrtypes;
  356.     HRESULT hr;
  357.     HRESULT hrMethod;
  358.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  359.     OPCHANDLE hServerGroup;
  360.     hr=widlUnmarshal (&hServerGroup, pus, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  361.     BOOL bForce;
  362.     hr=widlUnmarshal (&bForce, pus, ndrtypes.int_t ()); if (FAILED(hr)) return hr;
  363.     hrMethod = pitf->RemoveGroup (hServerGroup, bForce);
  364.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  365.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  366.     if (FAILED(hr))
  367.         return hr;
  368.     return S_OK;
  369.     }
  370. HRESULT STDMETHODCALLTYPE IOPCServer_CreateGroupEnumerator_vxproxy (IOPCServer* pThis, OPCENUMSCOPE dwScope, REFIID riid, LPUNKNOWN* ppUnk)
  371.     {
  372.     RPC_PROXY_MSG msg (IID_IOPCServer, RpcMode::OBJECT, 8, pThis);
  373.     NDRTYPES ndrtypes;
  374.     HRESULT hrMethod;
  375.     HRESULT hr;
  376.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  377.     hr=widlMarshal (&dwScope, pms, ndrtypes.enum_t ()); if (FAILED(hr)) return hr;
  378.     hr=widlMarshal (&riid, pms, StructDesc__GUID (ndrtypes)); if (FAILED(hr)) return hr;
  379.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  380.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  381.     hr=widlUnmarshal (&ppUnk, pus, ndrtypes.refptr_t(ndrtypes.interfaceptr_t (IID_IUnknown))); if (FAILED(hr)) return hr;
  382.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  383.     if (FAILED(hr))
  384.         return hr;
  385.     return hrMethod;
  386.     }
  387. HRESULT STDMETHODCALLTYPE IOPCServer_CreateGroupEnumerator_vxstub (IOPCServer* pitf, RPC_STUB_MSG& msg)
  388.     {
  389.     NDRTYPES ndrtypes;
  390.     HRESULT hr;
  391.     HRESULT hrMethod;
  392.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  393.     OPCENUMSCOPE dwScope;
  394.     hr=widlUnmarshal (&dwScope, pus, ndrtypes.enum_t ()); if (FAILED(hr)) return hr;
  395.     IID riid;
  396.     hr=widlUnmarshal (&riid, pus, StructDesc__GUID (ndrtypes)); if (FAILED(hr)) return hr;
  397.     LPUNKNOWN ppUnk_tmp;
  398.     LPUNKNOWN* ppUnk = &ppUnk_tmp;
  399.     hrMethod = pitf->CreateGroupEnumerator (dwScope, riid, ppUnk);
  400.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  401.     hr=widlMarshal (&ppUnk, pms, ndrtypes.refptr_t(ndrtypes.interfaceptr_t (IID_IUnknown))); if (FAILED(hr)) return hr;
  402.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  403.     if (FAILED(hr))
  404.         return hr;
  405.     if ((*ppUnk)) {((*ppUnk))->Release ();};
  406.     return S_OK;
  407.     }
  408. COM_VTABLE(IOPCServer) IOPCServer_vxproxy_vtbl = {
  409.     COM_VTBL_HEADER
  410.     COM_VTBL_METHOD(&IUnknown_QueryInterface_vxproxy),
  411.     COM_VTBL_METHOD(&IUnknown_AddRef_vxproxy),
  412.     COM_VTBL_METHOD(&IUnknown_Release_vxproxy),
  413.     COM_VTBL_METHOD(&IOPCServer_AddGroup_vxproxy),
  414.     COM_VTBL_METHOD(&IOPCServer_GetErrorString_vxproxy),
  415.     COM_VTBL_METHOD(&IOPCServer_GetGroupByName_vxproxy),
  416.     COM_VTBL_METHOD(&IOPCServer_GetStatus_vxproxy),
  417.     COM_VTBL_METHOD(&IOPCServer_RemoveGroup_vxproxy),
  418.     COM_VTBL_METHOD(&IOPCServer_CreateGroupEnumerator_vxproxy),
  419.     };
  420. const PFN_ORPC_STUB stub_functbl_IOPCServer [] =
  421.     {
  422.     0,0,0,
  423.     (PFN_ORPC_STUB) IOPCServer_AddGroup_vxstub,
  424.     (PFN_ORPC_STUB) IOPCServer_GetErrorString_vxstub,
  425.     (PFN_ORPC_STUB) IOPCServer_GetGroupByName_vxstub,
  426.     (PFN_ORPC_STUB) IOPCServer_GetStatus_vxstub,
  427.     (PFN_ORPC_STUB) IOPCServer_RemoveGroup_vxstub,
  428.     (PFN_ORPC_STUB) IOPCServer_CreateGroupEnumerator_vxstub,
  429.     };
  430. EXTERN_C const VXDCOM_STUB_DISPTBL IOPCServer_vxstub_disptbl =
  431.     {
  432.     9,
  433.     stub_functbl_IOPCServer
  434.     };
  435. VXDCOM_PS_AUTOREGISTER(IOPCServer);
  436. HRESULT STDMETHODCALLTYPE IOPCServerPublicGroups_GetPublicGroupByName_vxproxy (IOPCServerPublicGroups* pThis, LPCWSTR szName, REFIID riid, LPUNKNOWN* ppUnk)
  437.     {
  438.     RPC_PROXY_MSG msg (IID_IOPCServerPublicGroups, RpcMode::OBJECT, 3, pThis);
  439.     NDRTYPES ndrtypes;
  440.     HRESULT hrMethod;
  441.     HRESULT hr;
  442.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  443.     hr=widlMarshal (&szName, pms, ndrtypes.refptr_t(ndrtypes.wstring_t ())); if (FAILED(hr)) return hr;
  444.     hr=widlMarshal (&riid, pms, StructDesc__GUID (ndrtypes)); if (FAILED(hr)) return hr;
  445.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  446.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  447.     hr=widlUnmarshal (&ppUnk, pus, ndrtypes.refptr_t(ndrtypes.interfaceptr_t (IID_IUnknown))); if (FAILED(hr)) return hr;
  448.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  449.     if (FAILED(hr))
  450.         return hr;
  451.     return hrMethod;
  452.     }
  453. HRESULT STDMETHODCALLTYPE IOPCServerPublicGroups_GetPublicGroupByName_vxstub (IOPCServerPublicGroups* pitf, RPC_STUB_MSG& msg)
  454.     {
  455.     NDRTYPES ndrtypes;
  456.     HRESULT hr;
  457.     HRESULT hrMethod;
  458.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  459.     LPCWSTR szName;
  460.     hr=widlUnmarshal (&szName, pus, ndrtypes.refptr_t(ndrtypes.wstring_t ())); if (FAILED(hr)) return hr;
  461.     IID riid;
  462.     hr=widlUnmarshal (&riid, pus, StructDesc__GUID (ndrtypes)); if (FAILED(hr)) return hr;
  463.     LPUNKNOWN ppUnk_tmp;
  464.     LPUNKNOWN* ppUnk = &ppUnk_tmp;
  465.     hrMethod = pitf->GetPublicGroupByName (szName, riid, ppUnk);
  466.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  467.     hr=widlMarshal (&ppUnk, pms, ndrtypes.refptr_t(ndrtypes.interfaceptr_t (IID_IUnknown))); if (FAILED(hr)) return hr;
  468.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  469.     if (FAILED(hr))
  470.         return hr;
  471.     if ((*ppUnk)) {((*ppUnk))->Release ();};
  472.     return S_OK;
  473.     }
  474. HRESULT STDMETHODCALLTYPE IOPCServerPublicGroups_RemovePublicGroup_vxproxy (IOPCServerPublicGroups* pThis, OPCHANDLE hServerGroup, BOOL bForce)
  475.     {
  476.     RPC_PROXY_MSG msg (IID_IOPCServerPublicGroups, RpcMode::OBJECT, 4, pThis);
  477.     NDRTYPES ndrtypes;
  478.     HRESULT hrMethod;
  479.     HRESULT hr;
  480.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  481.     hr=widlMarshal (&hServerGroup, pms, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  482.     hr=widlMarshal (&bForce, pms, ndrtypes.int_t ()); if (FAILED(hr)) return hr;
  483.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  484.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  485.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  486.     if (FAILED(hr))
  487.         return hr;
  488.     return hrMethod;
  489.     }
  490. HRESULT STDMETHODCALLTYPE IOPCServerPublicGroups_RemovePublicGroup_vxstub (IOPCServerPublicGroups* pitf, RPC_STUB_MSG& msg)
  491.     {
  492.     NDRTYPES ndrtypes;
  493.     HRESULT hr;
  494.     HRESULT hrMethod;
  495.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  496.     OPCHANDLE hServerGroup;
  497.     hr=widlUnmarshal (&hServerGroup, pus, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  498.     BOOL bForce;
  499.     hr=widlUnmarshal (&bForce, pus, ndrtypes.int_t ()); if (FAILED(hr)) return hr;
  500.     hrMethod = pitf->RemovePublicGroup (hServerGroup, bForce);
  501.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  502.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  503.     if (FAILED(hr))
  504.         return hr;
  505.     return S_OK;
  506.     }
  507. COM_VTABLE(IOPCServerPublicGroups) IOPCServerPublicGroups_vxproxy_vtbl = {
  508.     COM_VTBL_HEADER
  509.     COM_VTBL_METHOD(&IUnknown_QueryInterface_vxproxy),
  510.     COM_VTBL_METHOD(&IUnknown_AddRef_vxproxy),
  511.     COM_VTBL_METHOD(&IUnknown_Release_vxproxy),
  512.     COM_VTBL_METHOD(&IOPCServerPublicGroups_GetPublicGroupByName_vxproxy),
  513.     COM_VTBL_METHOD(&IOPCServerPublicGroups_RemovePublicGroup_vxproxy),
  514.     };
  515. const PFN_ORPC_STUB stub_functbl_IOPCServerPublicGroups [] =
  516.     {
  517.     0,0,0,
  518.     (PFN_ORPC_STUB) IOPCServerPublicGroups_GetPublicGroupByName_vxstub,
  519.     (PFN_ORPC_STUB) IOPCServerPublicGroups_RemovePublicGroup_vxstub,
  520.     };
  521. EXTERN_C const VXDCOM_STUB_DISPTBL IOPCServerPublicGroups_vxstub_disptbl =
  522.     {
  523.     5,
  524.     stub_functbl_IOPCServerPublicGroups
  525.     };
  526. VXDCOM_PS_AUTOREGISTER(IOPCServerPublicGroups);
  527. HRESULT STDMETHODCALLTYPE IOPCBrowseServerAddressSpace_QueryOrganization_vxproxy (IOPCBrowseServerAddressSpace* pThis, OPCNAMESPACETYPE* pNameSpaceType)
  528.     {
  529.     RPC_PROXY_MSG msg (IID_IOPCBrowseServerAddressSpace, RpcMode::OBJECT, 3, pThis);
  530.     NDRTYPES ndrtypes;
  531.     HRESULT hrMethod;
  532.     HRESULT hr;
  533.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  534.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  535.     hr=widlUnmarshal (&pNameSpaceType, pus, ndrtypes.refptr_t(ndrtypes.enum_t ())); if (FAILED(hr)) return hr;
  536.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  537.     if (FAILED(hr))
  538.         return hr;
  539.     return hrMethod;
  540.     }
  541. HRESULT STDMETHODCALLTYPE IOPCBrowseServerAddressSpace_QueryOrganization_vxstub (IOPCBrowseServerAddressSpace* pitf, RPC_STUB_MSG& msg)
  542.     {
  543.     NDRTYPES ndrtypes;
  544.     HRESULT hr;
  545.     HRESULT hrMethod;
  546.     OPCNAMESPACETYPE pNameSpaceType_tmp;
  547.     OPCNAMESPACETYPE* pNameSpaceType = &pNameSpaceType_tmp;
  548.     hrMethod = pitf->QueryOrganization (pNameSpaceType);
  549.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  550.     hr=widlMarshal (&pNameSpaceType, pms, ndrtypes.refptr_t(ndrtypes.enum_t ())); if (FAILED(hr)) return hr;
  551.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  552.     if (FAILED(hr))
  553.         return hr;
  554.     return S_OK;
  555.     }
  556. HRESULT STDMETHODCALLTYPE IOPCBrowseServerAddressSpace_ChangeBrowsePosition_vxproxy (IOPCBrowseServerAddressSpace* pThis, OPCBROWSEDIRECTION dwBrowseDirection, LPCWSTR szString)
  557.     {
  558.     RPC_PROXY_MSG msg (IID_IOPCBrowseServerAddressSpace, RpcMode::OBJECT, 4, pThis);
  559.     NDRTYPES ndrtypes;
  560.     HRESULT hrMethod;
  561.     HRESULT hr;
  562.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  563.     hr=widlMarshal (&dwBrowseDirection, pms, ndrtypes.enum_t ()); if (FAILED(hr)) return hr;
  564.     hr=widlMarshal (&szString, pms, ndrtypes.refptr_t(ndrtypes.wstring_t ())); if (FAILED(hr)) return hr;
  565.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  566.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  567.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  568.     if (FAILED(hr))
  569.         return hr;
  570.     return hrMethod;
  571.     }
  572. HRESULT STDMETHODCALLTYPE IOPCBrowseServerAddressSpace_ChangeBrowsePosition_vxstub (IOPCBrowseServerAddressSpace* pitf, RPC_STUB_MSG& msg)
  573.     {
  574.     NDRTYPES ndrtypes;
  575.     HRESULT hr;
  576.     HRESULT hrMethod;
  577.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  578.     OPCBROWSEDIRECTION dwBrowseDirection;
  579.     hr=widlUnmarshal (&dwBrowseDirection, pus, ndrtypes.enum_t ()); if (FAILED(hr)) return hr;
  580.     LPCWSTR szString;
  581.     hr=widlUnmarshal (&szString, pus, ndrtypes.refptr_t(ndrtypes.wstring_t ())); if (FAILED(hr)) return hr;
  582.     hrMethod = pitf->ChangeBrowsePosition (dwBrowseDirection, szString);
  583.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  584.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  585.     if (FAILED(hr))
  586.         return hr;
  587.     return S_OK;
  588.     }
  589. HRESULT STDMETHODCALLTYPE IOPCBrowseServerAddressSpace_BrowseOPCItemIDs_vxproxy (IOPCBrowseServerAddressSpace* pThis, OPCBROWSETYPE dwBrowseFilterType, LPCWSTR szFilterCriteria, VARTYPE vtDataTypeFilter, DWORD dwAccessRightsFilter, LPENUMSTRING* ppIEnumString)
  590.     {
  591.     RPC_PROXY_MSG msg (IID_IOPCBrowseServerAddressSpace, RpcMode::OBJECT, 5, pThis);
  592.     NDRTYPES ndrtypes;
  593.     HRESULT hrMethod;
  594.     HRESULT hr;
  595.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  596.     hr=widlMarshal (&dwBrowseFilterType, pms, ndrtypes.enum_t ()); if (FAILED(hr)) return hr;
  597.     hr=widlMarshal (&szFilterCriteria, pms, ndrtypes.refptr_t(ndrtypes.wstring_t ())); if (FAILED(hr)) return hr;
  598.     hr=widlMarshal (&vtDataTypeFilter, pms, ndrtypes.ushort_t ()); if (FAILED(hr)) return hr;
  599.     hr=widlMarshal (&dwAccessRightsFilter, pms, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  600.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  601.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  602.     hr=widlUnmarshal (&ppIEnumString, pus, ndrtypes.refptr_t(ndrtypes.interfaceptr_t (IID_IEnumString))); if (FAILED(hr)) return hr;
  603.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  604.     if (FAILED(hr))
  605.         return hr;
  606.     return hrMethod;
  607.     }
  608. HRESULT STDMETHODCALLTYPE IOPCBrowseServerAddressSpace_BrowseOPCItemIDs_vxstub (IOPCBrowseServerAddressSpace* pitf, RPC_STUB_MSG& msg)
  609.     {
  610.     NDRTYPES ndrtypes;
  611.     HRESULT hr;
  612.     HRESULT hrMethod;
  613.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  614.     OPCBROWSETYPE dwBrowseFilterType;
  615.     hr=widlUnmarshal (&dwBrowseFilterType, pus, ndrtypes.enum_t ()); if (FAILED(hr)) return hr;
  616.     LPCWSTR szFilterCriteria;
  617.     hr=widlUnmarshal (&szFilterCriteria, pus, ndrtypes.refptr_t(ndrtypes.wstring_t ())); if (FAILED(hr)) return hr;
  618.     VARTYPE vtDataTypeFilter;
  619.     hr=widlUnmarshal (&vtDataTypeFilter, pus, ndrtypes.ushort_t ()); if (FAILED(hr)) return hr;
  620.     DWORD dwAccessRightsFilter;
  621.     hr=widlUnmarshal (&dwAccessRightsFilter, pus, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  622.     LPENUMSTRING ppIEnumString_tmp;
  623.     LPENUMSTRING* ppIEnumString = &ppIEnumString_tmp;
  624.     hrMethod = pitf->BrowseOPCItemIDs (dwBrowseFilterType, szFilterCriteria, vtDataTypeFilter, dwAccessRightsFilter, ppIEnumString);
  625.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  626.     hr=widlMarshal (&ppIEnumString, pms, ndrtypes.refptr_t(ndrtypes.interfaceptr_t (IID_IEnumString))); if (FAILED(hr)) return hr;
  627.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  628.     if (FAILED(hr))
  629.         return hr;
  630.     if ((*ppIEnumString)) {((*ppIEnumString))->Release ();};
  631.     return S_OK;
  632.     }
  633. HRESULT STDMETHODCALLTYPE IOPCBrowseServerAddressSpace_GetItemID_vxproxy (IOPCBrowseServerAddressSpace* pThis, LPWSTR szItemDataID, LPWSTR* szItemID)
  634.     {
  635.     RPC_PROXY_MSG msg (IID_IOPCBrowseServerAddressSpace, RpcMode::OBJECT, 6, pThis);
  636.     NDRTYPES ndrtypes;
  637.     HRESULT hrMethod;
  638.     HRESULT hr;
  639.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  640.     hr=widlMarshal (&szItemDataID, pms, ndrtypes.refptr_t(ndrtypes.wstring_t ())); if (FAILED(hr)) return hr;
  641.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  642.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  643.     hr=widlUnmarshal (&szItemID, pus, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.wstring_t ()))); if (FAILED(hr)) return hr;
  644.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  645.     if (FAILED(hr))
  646.         return hr;
  647.     return hrMethod;
  648.     }
  649. HRESULT STDMETHODCALLTYPE IOPCBrowseServerAddressSpace_GetItemID_vxstub (IOPCBrowseServerAddressSpace* pitf, RPC_STUB_MSG& msg)
  650.     {
  651.     NDRTYPES ndrtypes;
  652.     HRESULT hr;
  653.     HRESULT hrMethod;
  654.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  655.     LPWSTR szItemDataID;
  656.     hr=widlUnmarshal (&szItemDataID, pus, ndrtypes.refptr_t(ndrtypes.wstring_t ())); if (FAILED(hr)) return hr;
  657.     LPWSTR szItemID_tmp;
  658.     LPWSTR* szItemID = &szItemID_tmp;
  659.     hrMethod = pitf->GetItemID (szItemDataID, szItemID);
  660.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  661.     hr=widlMarshal (&szItemID, pms, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.wstring_t ()))); if (FAILED(hr)) return hr;
  662.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  663.     if (FAILED(hr))
  664.         return hr;
  665.     if ((*szItemID)) {CoTaskMemFree ((*szItemID));};
  666.     return S_OK;
  667.     }
  668. HRESULT STDMETHODCALLTYPE IOPCBrowseServerAddressSpace_BrowseAccessPaths_vxproxy (IOPCBrowseServerAddressSpace* pThis, LPCWSTR szItemID, LPENUMSTRING* ppIEnumString)
  669.     {
  670.     RPC_PROXY_MSG msg (IID_IOPCBrowseServerAddressSpace, RpcMode::OBJECT, 7, pThis);
  671.     NDRTYPES ndrtypes;
  672.     HRESULT hrMethod;
  673.     HRESULT hr;
  674.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  675.     hr=widlMarshal (&szItemID, pms, ndrtypes.refptr_t(ndrtypes.wstring_t ())); if (FAILED(hr)) return hr;
  676.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  677.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  678.     hr=widlUnmarshal (&ppIEnumString, pus, ndrtypes.refptr_t(ndrtypes.interfaceptr_t (IID_IEnumString))); if (FAILED(hr)) return hr;
  679.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  680.     if (FAILED(hr))
  681.         return hr;
  682.     return hrMethod;
  683.     }
  684. HRESULT STDMETHODCALLTYPE IOPCBrowseServerAddressSpace_BrowseAccessPaths_vxstub (IOPCBrowseServerAddressSpace* pitf, RPC_STUB_MSG& msg)
  685.     {
  686.     NDRTYPES ndrtypes;
  687.     HRESULT hr;
  688.     HRESULT hrMethod;
  689.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  690.     LPCWSTR szItemID;
  691.     hr=widlUnmarshal (&szItemID, pus, ndrtypes.refptr_t(ndrtypes.wstring_t ())); if (FAILED(hr)) return hr;
  692.     LPENUMSTRING ppIEnumString_tmp;
  693.     LPENUMSTRING* ppIEnumString = &ppIEnumString_tmp;
  694.     hrMethod = pitf->BrowseAccessPaths (szItemID, ppIEnumString);
  695.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  696.     hr=widlMarshal (&ppIEnumString, pms, ndrtypes.refptr_t(ndrtypes.interfaceptr_t (IID_IEnumString))); if (FAILED(hr)) return hr;
  697.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  698.     if (FAILED(hr))
  699.         return hr;
  700.     if ((*ppIEnumString)) {((*ppIEnumString))->Release ();};
  701.     return S_OK;
  702.     }
  703. COM_VTABLE(IOPCBrowseServerAddressSpace) IOPCBrowseServerAddressSpace_vxproxy_vtbl = {
  704.     COM_VTBL_HEADER
  705.     COM_VTBL_METHOD(&IUnknown_QueryInterface_vxproxy),
  706.     COM_VTBL_METHOD(&IUnknown_AddRef_vxproxy),
  707.     COM_VTBL_METHOD(&IUnknown_Release_vxproxy),
  708.     COM_VTBL_METHOD(&IOPCBrowseServerAddressSpace_QueryOrganization_vxproxy),
  709.     COM_VTBL_METHOD(&IOPCBrowseServerAddressSpace_ChangeBrowsePosition_vxproxy),
  710.     COM_VTBL_METHOD(&IOPCBrowseServerAddressSpace_BrowseOPCItemIDs_vxproxy),
  711.     COM_VTBL_METHOD(&IOPCBrowseServerAddressSpace_GetItemID_vxproxy),
  712.     COM_VTBL_METHOD(&IOPCBrowseServerAddressSpace_BrowseAccessPaths_vxproxy),
  713.     };
  714. const PFN_ORPC_STUB stub_functbl_IOPCBrowseServerAddressSpace [] =
  715.     {
  716.     0,0,0,
  717.     (PFN_ORPC_STUB) IOPCBrowseServerAddressSpace_QueryOrganization_vxstub,
  718.     (PFN_ORPC_STUB) IOPCBrowseServerAddressSpace_ChangeBrowsePosition_vxstub,
  719.     (PFN_ORPC_STUB) IOPCBrowseServerAddressSpace_BrowseOPCItemIDs_vxstub,
  720.     (PFN_ORPC_STUB) IOPCBrowseServerAddressSpace_GetItemID_vxstub,
  721.     (PFN_ORPC_STUB) IOPCBrowseServerAddressSpace_BrowseAccessPaths_vxstub,
  722.     };
  723. EXTERN_C const VXDCOM_STUB_DISPTBL IOPCBrowseServerAddressSpace_vxstub_disptbl =
  724.     {
  725.     8,
  726.     stub_functbl_IOPCBrowseServerAddressSpace
  727.     };
  728. VXDCOM_PS_AUTOREGISTER(IOPCBrowseServerAddressSpace);
  729. HRESULT STDMETHODCALLTYPE IOPCGroupStateMgt_GetState_vxproxy (IOPCGroupStateMgt* pThis, DWORD* pUpdateRate, BOOL* pActive, LPWSTR* ppName, LONG* pTimeBias, FLOAT* pPercentDeadband, DWORD* pLCID, OPCHANDLE* phClientGroup, OPCHANDLE* phServerGroup)
  730.     {
  731.     RPC_PROXY_MSG msg (IID_IOPCGroupStateMgt, RpcMode::OBJECT, 3, pThis);
  732.     NDRTYPES ndrtypes;
  733.     HRESULT hrMethod;
  734.     HRESULT hr;
  735.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  736.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  737.     hr=widlUnmarshal (&pUpdateRate, pus, ndrtypes.refptr_t(ndrtypes.ulong_t ())); if (FAILED(hr)) return hr;
  738.     hr=widlUnmarshal (&pActive, pus, ndrtypes.refptr_t(ndrtypes.int_t ())); if (FAILED(hr)) return hr;
  739.     hr=widlUnmarshal (&ppName, pus, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.wstring_t ()))); if (FAILED(hr)) return hr;
  740.     hr=widlUnmarshal (&pTimeBias, pus, ndrtypes.refptr_t(ndrtypes.long_t ())); if (FAILED(hr)) return hr;
  741.     hr=widlUnmarshal (&pPercentDeadband, pus, ndrtypes.refptr_t(ndrtypes.float_t ())); if (FAILED(hr)) return hr;
  742.     hr=widlUnmarshal (&pLCID, pus, ndrtypes.refptr_t(ndrtypes.ulong_t ())); if (FAILED(hr)) return hr;
  743.     hr=widlUnmarshal (&phClientGroup, pus, ndrtypes.refptr_t(ndrtypes.ulong_t ())); if (FAILED(hr)) return hr;
  744.     hr=widlUnmarshal (&phServerGroup, pus, ndrtypes.refptr_t(ndrtypes.ulong_t ())); if (FAILED(hr)) return hr;
  745.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  746.     if (FAILED(hr))
  747.         return hr;
  748.     return hrMethod;
  749.     }
  750. HRESULT STDMETHODCALLTYPE IOPCGroupStateMgt_GetState_vxstub (IOPCGroupStateMgt* pitf, RPC_STUB_MSG& msg)
  751.     {
  752.     NDRTYPES ndrtypes;
  753.     HRESULT hr;
  754.     HRESULT hrMethod;
  755.     DWORD pUpdateRate_tmp;
  756.     DWORD* pUpdateRate = &pUpdateRate_tmp;
  757.     BOOL pActive_tmp;
  758.     BOOL* pActive = &pActive_tmp;
  759.     LPWSTR ppName_tmp;
  760.     LPWSTR* ppName = &ppName_tmp;
  761.     LONG pTimeBias_tmp;
  762.     LONG* pTimeBias = &pTimeBias_tmp;
  763.     FLOAT pPercentDeadband_tmp;
  764.     FLOAT* pPercentDeadband = &pPercentDeadband_tmp;
  765.     DWORD pLCID_tmp;
  766.     DWORD* pLCID = &pLCID_tmp;
  767.     OPCHANDLE phClientGroup_tmp;
  768.     OPCHANDLE* phClientGroup = &phClientGroup_tmp;
  769.     OPCHANDLE phServerGroup_tmp;
  770.     OPCHANDLE* phServerGroup = &phServerGroup_tmp;
  771.     hrMethod = pitf->GetState (pUpdateRate, pActive, ppName, pTimeBias, pPercentDeadband, pLCID, phClientGroup, phServerGroup);
  772.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  773.     hr=widlMarshal (&pUpdateRate, pms, ndrtypes.refptr_t(ndrtypes.ulong_t ())); if (FAILED(hr)) return hr;
  774.     hr=widlMarshal (&pActive, pms, ndrtypes.refptr_t(ndrtypes.int_t ())); if (FAILED(hr)) return hr;
  775.     hr=widlMarshal (&ppName, pms, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.wstring_t ()))); if (FAILED(hr)) return hr;
  776.     hr=widlMarshal (&pTimeBias, pms, ndrtypes.refptr_t(ndrtypes.long_t ())); if (FAILED(hr)) return hr;
  777.     hr=widlMarshal (&pPercentDeadband, pms, ndrtypes.refptr_t(ndrtypes.float_t ())); if (FAILED(hr)) return hr;
  778.     hr=widlMarshal (&pLCID, pms, ndrtypes.refptr_t(ndrtypes.ulong_t ())); if (FAILED(hr)) return hr;
  779.     hr=widlMarshal (&phClientGroup, pms, ndrtypes.refptr_t(ndrtypes.ulong_t ())); if (FAILED(hr)) return hr;
  780.     hr=widlMarshal (&phServerGroup, pms, ndrtypes.refptr_t(ndrtypes.ulong_t ())); if (FAILED(hr)) return hr;
  781.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  782.     if (FAILED(hr))
  783.         return hr;
  784.     if ((*ppName)) {CoTaskMemFree ((*ppName));};
  785.     return S_OK;
  786.     }
  787. HRESULT STDMETHODCALLTYPE IOPCGroupStateMgt_SetState_vxproxy (IOPCGroupStateMgt* pThis, DWORD* pRequestedUpdateRate, DWORD* pRevisedUpdateRate, BOOL* pActive, LONG* pTimeBias, FLOAT* pPercentDeadband, DWORD* pLCID, OPCHANDLE* phClientGroup)
  788.     {
  789.     RPC_PROXY_MSG msg (IID_IOPCGroupStateMgt, RpcMode::OBJECT, 4, pThis);
  790.     NDRTYPES ndrtypes;
  791.     HRESULT hrMethod;
  792.     HRESULT hr;
  793.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  794.     hr=widlMarshal (&pRequestedUpdateRate, pms, ndrtypes.pointer_t(ndrtypes.ulong_t ())); if (FAILED(hr)) return hr;
  795.     hr=widlMarshal (&pActive, pms, ndrtypes.pointer_t(ndrtypes.int_t ())); if (FAILED(hr)) return hr;
  796.     hr=widlMarshal (&pTimeBias, pms, ndrtypes.pointer_t(ndrtypes.long_t ())); if (FAILED(hr)) return hr;
  797.     hr=widlMarshal (&pPercentDeadband, pms, ndrtypes.pointer_t(ndrtypes.float_t ())); if (FAILED(hr)) return hr;
  798.     hr=widlMarshal (&pLCID, pms, ndrtypes.pointer_t(ndrtypes.ulong_t ())); if (FAILED(hr)) return hr;
  799.     hr=widlMarshal (&phClientGroup, pms, ndrtypes.pointer_t(ndrtypes.ulong_t ())); if (FAILED(hr)) return hr;
  800.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  801.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  802.     hr=widlUnmarshal (&pRevisedUpdateRate, pus, ndrtypes.refptr_t(ndrtypes.ulong_t ())); if (FAILED(hr)) return hr;
  803.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  804.     if (FAILED(hr))
  805.         return hr;
  806.     return hrMethod;
  807.     }
  808. HRESULT STDMETHODCALLTYPE IOPCGroupStateMgt_SetState_vxstub (IOPCGroupStateMgt* pitf, RPC_STUB_MSG& msg)
  809.     {
  810.     NDRTYPES ndrtypes;
  811.     HRESULT hr;
  812.     HRESULT hrMethod;
  813.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  814.     DWORD* pRequestedUpdateRate;
  815.     hr=widlUnmarshal (&pRequestedUpdateRate, pus, ndrtypes.pointer_t(ndrtypes.ulong_t ())); if (FAILED(hr)) return hr;
  816.     BOOL* pActive;
  817.     hr=widlUnmarshal (&pActive, pus, ndrtypes.pointer_t(ndrtypes.int_t ())); if (FAILED(hr)) return hr;
  818.     LONG* pTimeBias;
  819.     hr=widlUnmarshal (&pTimeBias, pus, ndrtypes.pointer_t(ndrtypes.long_t ())); if (FAILED(hr)) return hr;
  820.     FLOAT* pPercentDeadband;
  821.     hr=widlUnmarshal (&pPercentDeadband, pus, ndrtypes.pointer_t(ndrtypes.float_t ())); if (FAILED(hr)) return hr;
  822.     DWORD* pLCID;
  823.     hr=widlUnmarshal (&pLCID, pus, ndrtypes.pointer_t(ndrtypes.ulong_t ())); if (FAILED(hr)) return hr;
  824.     OPCHANDLE* phClientGroup;
  825.     hr=widlUnmarshal (&phClientGroup, pus, ndrtypes.pointer_t(ndrtypes.ulong_t ())); if (FAILED(hr)) return hr;
  826.     DWORD pRevisedUpdateRate_tmp;
  827.     DWORD* pRevisedUpdateRate = &pRevisedUpdateRate_tmp;
  828.     hrMethod = pitf->SetState (pRequestedUpdateRate, pRevisedUpdateRate, pActive, pTimeBias, pPercentDeadband, pLCID, phClientGroup);
  829.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  830.     hr=widlMarshal (&pRevisedUpdateRate, pms, ndrtypes.refptr_t(ndrtypes.ulong_t ())); if (FAILED(hr)) return hr;
  831.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  832.     if (FAILED(hr))
  833.         return hr;
  834.     return S_OK;
  835.     }
  836. HRESULT STDMETHODCALLTYPE IOPCGroupStateMgt_SetName_vxproxy (IOPCGroupStateMgt* pThis, LPCWSTR szName)
  837.     {
  838.     RPC_PROXY_MSG msg (IID_IOPCGroupStateMgt, RpcMode::OBJECT, 5, pThis);
  839.     NDRTYPES ndrtypes;
  840.     HRESULT hrMethod;
  841.     HRESULT hr;
  842.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  843.     hr=widlMarshal (&szName, pms, ndrtypes.refptr_t(ndrtypes.wstring_t ())); if (FAILED(hr)) return hr;
  844.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  845.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  846.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  847.     if (FAILED(hr))
  848.         return hr;
  849.     return hrMethod;
  850.     }
  851. HRESULT STDMETHODCALLTYPE IOPCGroupStateMgt_SetName_vxstub (IOPCGroupStateMgt* pitf, RPC_STUB_MSG& msg)
  852.     {
  853.     NDRTYPES ndrtypes;
  854.     HRESULT hr;
  855.     HRESULT hrMethod;
  856.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  857.     LPCWSTR szName;
  858.     hr=widlUnmarshal (&szName, pus, ndrtypes.refptr_t(ndrtypes.wstring_t ())); if (FAILED(hr)) return hr;
  859.     hrMethod = pitf->SetName (szName);
  860.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  861.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  862.     if (FAILED(hr))
  863.         return hr;
  864.     return S_OK;
  865.     }
  866. HRESULT STDMETHODCALLTYPE IOPCGroupStateMgt_CloneGroup_vxproxy (IOPCGroupStateMgt* pThis, LPCWSTR szName, REFIID riid, LPUNKNOWN* ppUnk)
  867.     {
  868.     RPC_PROXY_MSG msg (IID_IOPCGroupStateMgt, RpcMode::OBJECT, 6, pThis);
  869.     NDRTYPES ndrtypes;
  870.     HRESULT hrMethod;
  871.     HRESULT hr;
  872.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  873.     hr=widlMarshal (&szName, pms, ndrtypes.refptr_t(ndrtypes.wstring_t ())); if (FAILED(hr)) return hr;
  874.     hr=widlMarshal (&riid, pms, StructDesc__GUID (ndrtypes)); if (FAILED(hr)) return hr;
  875.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  876.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  877.     hr=widlUnmarshal (&ppUnk, pus, ndrtypes.refptr_t(ndrtypes.interfaceptr_t (IID_IUnknown))); if (FAILED(hr)) return hr;
  878.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  879.     if (FAILED(hr))
  880.         return hr;
  881.     return hrMethod;
  882.     }
  883. HRESULT STDMETHODCALLTYPE IOPCGroupStateMgt_CloneGroup_vxstub (IOPCGroupStateMgt* pitf, RPC_STUB_MSG& msg)
  884.     {
  885.     NDRTYPES ndrtypes;
  886.     HRESULT hr;
  887.     HRESULT hrMethod;
  888.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  889.     LPCWSTR szName;
  890.     hr=widlUnmarshal (&szName, pus, ndrtypes.refptr_t(ndrtypes.wstring_t ())); if (FAILED(hr)) return hr;
  891.     IID riid;
  892.     hr=widlUnmarshal (&riid, pus, StructDesc__GUID (ndrtypes)); if (FAILED(hr)) return hr;
  893.     LPUNKNOWN ppUnk_tmp;
  894.     LPUNKNOWN* ppUnk = &ppUnk_tmp;
  895.     hrMethod = pitf->CloneGroup (szName, riid, ppUnk);
  896.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  897.     hr=widlMarshal (&ppUnk, pms, ndrtypes.refptr_t(ndrtypes.interfaceptr_t (IID_IUnknown))); if (FAILED(hr)) return hr;
  898.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  899.     if (FAILED(hr))
  900.         return hr;
  901.     if ((*ppUnk)) {((*ppUnk))->Release ();};
  902.     return S_OK;
  903.     }
  904. COM_VTABLE(IOPCGroupStateMgt) IOPCGroupStateMgt_vxproxy_vtbl = {
  905.     COM_VTBL_HEADER
  906.     COM_VTBL_METHOD(&IUnknown_QueryInterface_vxproxy),
  907.     COM_VTBL_METHOD(&IUnknown_AddRef_vxproxy),
  908.     COM_VTBL_METHOD(&IUnknown_Release_vxproxy),
  909.     COM_VTBL_METHOD(&IOPCGroupStateMgt_GetState_vxproxy),
  910.     COM_VTBL_METHOD(&IOPCGroupStateMgt_SetState_vxproxy),
  911.     COM_VTBL_METHOD(&IOPCGroupStateMgt_SetName_vxproxy),
  912.     COM_VTBL_METHOD(&IOPCGroupStateMgt_CloneGroup_vxproxy),
  913.     };
  914. const PFN_ORPC_STUB stub_functbl_IOPCGroupStateMgt [] =
  915.     {
  916.     0,0,0,
  917.     (PFN_ORPC_STUB) IOPCGroupStateMgt_GetState_vxstub,
  918.     (PFN_ORPC_STUB) IOPCGroupStateMgt_SetState_vxstub,
  919.     (PFN_ORPC_STUB) IOPCGroupStateMgt_SetName_vxstub,
  920.     (PFN_ORPC_STUB) IOPCGroupStateMgt_CloneGroup_vxstub,
  921.     };
  922. EXTERN_C const VXDCOM_STUB_DISPTBL IOPCGroupStateMgt_vxstub_disptbl =
  923.     {
  924.     7,
  925.     stub_functbl_IOPCGroupStateMgt
  926.     };
  927. VXDCOM_PS_AUTOREGISTER(IOPCGroupStateMgt);
  928. HRESULT STDMETHODCALLTYPE IOPCPublicGroupStateMgt_GetState_vxproxy (IOPCPublicGroupStateMgt* pThis, BOOL* pPublic)
  929.     {
  930.     RPC_PROXY_MSG msg (IID_IOPCPublicGroupStateMgt, RpcMode::OBJECT, 3, pThis);
  931.     NDRTYPES ndrtypes;
  932.     HRESULT hrMethod;
  933.     HRESULT hr;
  934.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  935.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  936.     hr=widlUnmarshal (&pPublic, pus, ndrtypes.refptr_t(ndrtypes.int_t ())); if (FAILED(hr)) return hr;
  937.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  938.     if (FAILED(hr))
  939.         return hr;
  940.     return hrMethod;
  941.     }
  942. HRESULT STDMETHODCALLTYPE IOPCPublicGroupStateMgt_GetState_vxstub (IOPCPublicGroupStateMgt* pitf, RPC_STUB_MSG& msg)
  943.     {
  944.     NDRTYPES ndrtypes;
  945.     HRESULT hr;
  946.     HRESULT hrMethod;
  947.     BOOL pPublic_tmp;
  948.     BOOL* pPublic = &pPublic_tmp;
  949.     hrMethod = pitf->GetState (pPublic);
  950.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  951.     hr=widlMarshal (&pPublic, pms, ndrtypes.refptr_t(ndrtypes.int_t ())); if (FAILED(hr)) return hr;
  952.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  953.     if (FAILED(hr))
  954.         return hr;
  955.     return S_OK;
  956.     }
  957. HRESULT STDMETHODCALLTYPE IOPCPublicGroupStateMgt_MoveToPublic_vxproxy (IOPCPublicGroupStateMgt* pThis)
  958.     {
  959.     RPC_PROXY_MSG msg (IID_IOPCPublicGroupStateMgt, RpcMode::OBJECT, 4, pThis);
  960.     NDRTYPES ndrtypes;
  961.     HRESULT hrMethod;
  962.     HRESULT hr;
  963.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  964.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  965.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  966.     if (FAILED(hr))
  967.         return hr;
  968.     return hrMethod;
  969.     }
  970. HRESULT STDMETHODCALLTYPE IOPCPublicGroupStateMgt_MoveToPublic_vxstub (IOPCPublicGroupStateMgt* pitf, RPC_STUB_MSG& msg)
  971.     {
  972.     NDRTYPES ndrtypes;
  973.     HRESULT hr;
  974.     HRESULT hrMethod;
  975.     hrMethod = pitf->MoveToPublic ();
  976.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  977.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  978.     if (FAILED(hr))
  979.         return hr;
  980.     return S_OK;
  981.     }
  982. COM_VTABLE(IOPCPublicGroupStateMgt) IOPCPublicGroupStateMgt_vxproxy_vtbl = {
  983.     COM_VTBL_HEADER
  984.     COM_VTBL_METHOD(&IUnknown_QueryInterface_vxproxy),
  985.     COM_VTBL_METHOD(&IUnknown_AddRef_vxproxy),
  986.     COM_VTBL_METHOD(&IUnknown_Release_vxproxy),
  987.     COM_VTBL_METHOD(&IOPCPublicGroupStateMgt_GetState_vxproxy),
  988.     COM_VTBL_METHOD(&IOPCPublicGroupStateMgt_MoveToPublic_vxproxy),
  989.     };
  990. const PFN_ORPC_STUB stub_functbl_IOPCPublicGroupStateMgt [] =
  991.     {
  992.     0,0,0,
  993.     (PFN_ORPC_STUB) IOPCPublicGroupStateMgt_GetState_vxstub,
  994.     (PFN_ORPC_STUB) IOPCPublicGroupStateMgt_MoveToPublic_vxstub,
  995.     };
  996. EXTERN_C const VXDCOM_STUB_DISPTBL IOPCPublicGroupStateMgt_vxstub_disptbl =
  997.     {
  998.     5,
  999.     stub_functbl_IOPCPublicGroupStateMgt
  1000.     };
  1001. VXDCOM_PS_AUTOREGISTER(IOPCPublicGroupStateMgt);
  1002. HRESULT STDMETHODCALLTYPE IOPCSyncIO_Read_vxproxy (IOPCSyncIO* pThis, OPCDATASOURCE dwSource, DWORD dwCount, OPCHANDLE* phServer, OPCITEMSTATE** ppItemValues, HRESULT** ppErrors)
  1003.     {
  1004.     RPC_PROXY_MSG msg (IID_IOPCSyncIO, RpcMode::OBJECT, 3, pThis);
  1005.     NDRTYPES ndrtypes;
  1006.     HRESULT hrMethod;
  1007.     HRESULT hr;
  1008.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  1009.     hr=widlMarshal (&dwSource, pms, ndrtypes.enum_t ()); if (FAILED(hr)) return hr;
  1010.     hr=widlMarshal (&dwCount, pms, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1011.     hr=widlMarshal (&phServer, pms, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.ulong_t (), NDR_SIZEOF(OPCHANDLE), dwCount))); if (FAILED(hr)) return hr;
  1012.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  1013.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  1014.     hr=widlUnmarshal (&ppItemValues, pus, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.carray_t(StructDesc_tagOPCITEMSTATE (ndrtypes), NDR_SIZEOF(OPCITEMSTATE))))); if (FAILED(hr)) return hr;
  1015.     hr=widlUnmarshal (&ppErrors, pus, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.carray_t(ndrtypes.long_t (), NDR_SIZEOF(HRESULT))))); if (FAILED(hr)) return hr;
  1016.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  1017.     if (FAILED(hr))
  1018.         return hr;
  1019.     return hrMethod;
  1020.     }
  1021. HRESULT STDMETHODCALLTYPE IOPCSyncIO_Read_vxstub (IOPCSyncIO* pitf, RPC_STUB_MSG& msg)
  1022.     {
  1023.     NDRTYPES ndrtypes;
  1024.     HRESULT hr;
  1025.     HRESULT hrMethod;
  1026.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  1027.     OPCDATASOURCE dwSource;
  1028.     hr=widlUnmarshal (&dwSource, pus, ndrtypes.enum_t ()); if (FAILED(hr)) return hr;
  1029.     DWORD dwCount;
  1030.     hr=widlUnmarshal (&dwCount, pus, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1031.     OPCHANDLE* phServer;
  1032.     hr=widlUnmarshal (&phServer, pus, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.ulong_t (), NDR_SIZEOF(OPCHANDLE)))); if (FAILED(hr)) return hr;
  1033.     OPCITEMSTATE* ppItemValues_tmp;
  1034.     OPCITEMSTATE** ppItemValues = &ppItemValues_tmp;
  1035.     HRESULT* ppErrors_tmp;
  1036.     HRESULT** ppErrors = &ppErrors_tmp;
  1037.     hrMethod = pitf->Read (dwSource, dwCount, phServer, ppItemValues, ppErrors);
  1038.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  1039.     hr=widlMarshal (&ppItemValues, pms, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.carray_t(StructDesc_tagOPCITEMSTATE (ndrtypes), NDR_SIZEOF(OPCITEMSTATE), dwCount)))); if (FAILED(hr)) return hr;
  1040.     hr=widlMarshal (&ppErrors, pms, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.carray_t(ndrtypes.long_t (), NDR_SIZEOF(HRESULT), dwCount)))); if (FAILED(hr)) return hr;
  1041.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  1042.     if (FAILED(hr))
  1043.         return hr;
  1044.     if ((*ppItemValues)) {{for (DWORD __ix=0; __ix < dwCount; ++__ix) {::VariantClear (&(((*ppItemValues)[__ix]).vDataValue)); }}CoTaskMemFree ((*ppItemValues));}if ((*ppErrors)) {CoTaskMemFree ((*ppErrors));};
  1045.     return S_OK;
  1046.     }
  1047. HRESULT STDMETHODCALLTYPE IOPCSyncIO_Write_vxproxy (IOPCSyncIO* pThis, DWORD dwCount, OPCHANDLE* phServer, VARIANT* pItemValues, HRESULT** ppErrors)
  1048.     {
  1049.     RPC_PROXY_MSG msg (IID_IOPCSyncIO, RpcMode::OBJECT, 4, pThis);
  1050.     NDRTYPES ndrtypes;
  1051.     HRESULT hrMethod;
  1052.     HRESULT hr;
  1053.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  1054.     hr=widlMarshal (&dwCount, pms, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1055.     hr=widlMarshal (&phServer, pms, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.ulong_t (), NDR_SIZEOF(OPCHANDLE), dwCount))); if (FAILED(hr)) return hr;
  1056.     hr=widlMarshal (&pItemValues, pms, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.variant_t (), NDR_SIZEOF(VARIANT), dwCount))); if (FAILED(hr)) return hr;
  1057.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  1058.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  1059.     hr=widlUnmarshal (&ppErrors, pus, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.carray_t(ndrtypes.long_t (), NDR_SIZEOF(HRESULT))))); if (FAILED(hr)) return hr;
  1060.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  1061.     if (FAILED(hr))
  1062.         return hr;
  1063.     return hrMethod;
  1064.     }
  1065. HRESULT STDMETHODCALLTYPE IOPCSyncIO_Write_vxstub (IOPCSyncIO* pitf, RPC_STUB_MSG& msg)
  1066.     {
  1067.     NDRTYPES ndrtypes;
  1068.     HRESULT hr;
  1069.     HRESULT hrMethod;
  1070.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  1071.     DWORD dwCount;
  1072.     hr=widlUnmarshal (&dwCount, pus, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1073.     OPCHANDLE* phServer;
  1074.     hr=widlUnmarshal (&phServer, pus, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.ulong_t (), NDR_SIZEOF(OPCHANDLE)))); if (FAILED(hr)) return hr;
  1075.     VARIANT* pItemValues;
  1076.     hr=widlUnmarshal (&pItemValues, pus, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.variant_t (), NDR_SIZEOF(VARIANT)))); if (FAILED(hr)) return hr;
  1077.     HRESULT* ppErrors_tmp;
  1078.     HRESULT** ppErrors = &ppErrors_tmp;
  1079.     hrMethod = pitf->Write (dwCount, phServer, pItemValues, ppErrors);
  1080.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  1081.     hr=widlMarshal (&ppErrors, pms, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.carray_t(ndrtypes.long_t (), NDR_SIZEOF(HRESULT), dwCount)))); if (FAILED(hr)) return hr;
  1082.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  1083.     if (FAILED(hr))
  1084.         return hr;
  1085.     if ((*ppErrors)) {CoTaskMemFree ((*ppErrors));};
  1086.     return S_OK;
  1087.     }
  1088. COM_VTABLE(IOPCSyncIO) IOPCSyncIO_vxproxy_vtbl = {
  1089.     COM_VTBL_HEADER
  1090.     COM_VTBL_METHOD(&IUnknown_QueryInterface_vxproxy),
  1091.     COM_VTBL_METHOD(&IUnknown_AddRef_vxproxy),
  1092.     COM_VTBL_METHOD(&IUnknown_Release_vxproxy),
  1093.     COM_VTBL_METHOD(&IOPCSyncIO_Read_vxproxy),
  1094.     COM_VTBL_METHOD(&IOPCSyncIO_Write_vxproxy),
  1095.     };
  1096. const PFN_ORPC_STUB stub_functbl_IOPCSyncIO [] =
  1097.     {
  1098.     0,0,0,
  1099.     (PFN_ORPC_STUB) IOPCSyncIO_Read_vxstub,
  1100.     (PFN_ORPC_STUB) IOPCSyncIO_Write_vxstub,
  1101.     };
  1102. EXTERN_C const VXDCOM_STUB_DISPTBL IOPCSyncIO_vxstub_disptbl =
  1103.     {
  1104.     5,
  1105.     stub_functbl_IOPCSyncIO
  1106.     };
  1107. VXDCOM_PS_AUTOREGISTER(IOPCSyncIO);
  1108. HRESULT STDMETHODCALLTYPE IOPCAsyncIO_Read_vxproxy (IOPCAsyncIO* pThis, DWORD dwConnection, OPCDATASOURCE dwSource, DWORD dwCount, OPCHANDLE* phServer, DWORD* pTransactionID, HRESULT** ppErrors)
  1109.     {
  1110.     RPC_PROXY_MSG msg (IID_IOPCAsyncIO, RpcMode::OBJECT, 3, pThis);
  1111.     NDRTYPES ndrtypes;
  1112.     HRESULT hrMethod;
  1113.     HRESULT hr;
  1114.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  1115.     hr=widlMarshal (&dwConnection, pms, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1116.     hr=widlMarshal (&dwSource, pms, ndrtypes.enum_t ()); if (FAILED(hr)) return hr;
  1117.     hr=widlMarshal (&dwCount, pms, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1118.     hr=widlMarshal (&phServer, pms, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.ulong_t (), NDR_SIZEOF(OPCHANDLE), dwCount))); if (FAILED(hr)) return hr;
  1119.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  1120.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  1121.     hr=widlUnmarshal (&pTransactionID, pus, ndrtypes.refptr_t(ndrtypes.ulong_t ())); if (FAILED(hr)) return hr;
  1122.     hr=widlUnmarshal (&ppErrors, pus, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.carray_t(ndrtypes.long_t (), NDR_SIZEOF(HRESULT))))); if (FAILED(hr)) return hr;
  1123.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  1124.     if (FAILED(hr))
  1125.         return hr;
  1126.     return hrMethod;
  1127.     }
  1128. HRESULT STDMETHODCALLTYPE IOPCAsyncIO_Read_vxstub (IOPCAsyncIO* pitf, RPC_STUB_MSG& msg)
  1129.     {
  1130.     NDRTYPES ndrtypes;
  1131.     HRESULT hr;
  1132.     HRESULT hrMethod;
  1133.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  1134.     DWORD dwConnection;
  1135.     hr=widlUnmarshal (&dwConnection, pus, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1136.     OPCDATASOURCE dwSource;
  1137.     hr=widlUnmarshal (&dwSource, pus, ndrtypes.enum_t ()); if (FAILED(hr)) return hr;
  1138.     DWORD dwCount;
  1139.     hr=widlUnmarshal (&dwCount, pus, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1140.     OPCHANDLE* phServer;
  1141.     hr=widlUnmarshal (&phServer, pus, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.ulong_t (), NDR_SIZEOF(OPCHANDLE)))); if (FAILED(hr)) return hr;
  1142.     DWORD pTransactionID_tmp;
  1143.     DWORD* pTransactionID = &pTransactionID_tmp;
  1144.     HRESULT* ppErrors_tmp;
  1145.     HRESULT** ppErrors = &ppErrors_tmp;
  1146.     hrMethod = pitf->Read (dwConnection, dwSource, dwCount, phServer, pTransactionID, ppErrors);
  1147.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  1148.     hr=widlMarshal (&pTransactionID, pms, ndrtypes.refptr_t(ndrtypes.ulong_t ())); if (FAILED(hr)) return hr;
  1149.     hr=widlMarshal (&ppErrors, pms, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.carray_t(ndrtypes.long_t (), NDR_SIZEOF(HRESULT), dwCount)))); if (FAILED(hr)) return hr;
  1150.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  1151.     if (FAILED(hr))
  1152.         return hr;
  1153.     if ((*ppErrors)) {CoTaskMemFree ((*ppErrors));};
  1154.     return S_OK;
  1155.     }
  1156. HRESULT STDMETHODCALLTYPE IOPCAsyncIO_Write_vxproxy (IOPCAsyncIO* pThis, DWORD dwConnection, DWORD dwCount, OPCHANDLE* phServer, VARIANT* pItemValues, DWORD* pTransactionID, HRESULT** ppErrors)
  1157.     {
  1158.     RPC_PROXY_MSG msg (IID_IOPCAsyncIO, RpcMode::OBJECT, 4, pThis);
  1159.     NDRTYPES ndrtypes;
  1160.     HRESULT hrMethod;
  1161.     HRESULT hr;
  1162.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  1163.     hr=widlMarshal (&dwConnection, pms, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1164.     hr=widlMarshal (&dwCount, pms, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1165.     hr=widlMarshal (&phServer, pms, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.ulong_t (), NDR_SIZEOF(OPCHANDLE), dwCount))); if (FAILED(hr)) return hr;
  1166.     hr=widlMarshal (&pItemValues, pms, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.variant_t (), NDR_SIZEOF(VARIANT), dwCount))); if (FAILED(hr)) return hr;
  1167.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  1168.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  1169.     hr=widlUnmarshal (&pTransactionID, pus, ndrtypes.refptr_t(ndrtypes.ulong_t ())); if (FAILED(hr)) return hr;
  1170.     hr=widlUnmarshal (&ppErrors, pus, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.carray_t(ndrtypes.long_t (), NDR_SIZEOF(HRESULT))))); if (FAILED(hr)) return hr;
  1171.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  1172.     if (FAILED(hr))
  1173.         return hr;
  1174.     return hrMethod;
  1175.     }
  1176. HRESULT STDMETHODCALLTYPE IOPCAsyncIO_Write_vxstub (IOPCAsyncIO* pitf, RPC_STUB_MSG& msg)
  1177.     {
  1178.     NDRTYPES ndrtypes;
  1179.     HRESULT hr;
  1180.     HRESULT hrMethod;
  1181.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  1182.     DWORD dwConnection;
  1183.     hr=widlUnmarshal (&dwConnection, pus, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1184.     DWORD dwCount;
  1185.     hr=widlUnmarshal (&dwCount, pus, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1186.     OPCHANDLE* phServer;
  1187.     hr=widlUnmarshal (&phServer, pus, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.ulong_t (), NDR_SIZEOF(OPCHANDLE)))); if (FAILED(hr)) return hr;
  1188.     VARIANT* pItemValues;
  1189.     hr=widlUnmarshal (&pItemValues, pus, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.variant_t (), NDR_SIZEOF(VARIANT)))); if (FAILED(hr)) return hr;
  1190.     DWORD pTransactionID_tmp;
  1191.     DWORD* pTransactionID = &pTransactionID_tmp;
  1192.     HRESULT* ppErrors_tmp;
  1193.     HRESULT** ppErrors = &ppErrors_tmp;
  1194.     hrMethod = pitf->Write (dwConnection, dwCount, phServer, pItemValues, pTransactionID, ppErrors);
  1195.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  1196.     hr=widlMarshal (&pTransactionID, pms, ndrtypes.refptr_t(ndrtypes.ulong_t ())); if (FAILED(hr)) return hr;
  1197.     hr=widlMarshal (&ppErrors, pms, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.carray_t(ndrtypes.long_t (), NDR_SIZEOF(HRESULT), dwCount)))); if (FAILED(hr)) return hr;
  1198.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  1199.     if (FAILED(hr))
  1200.         return hr;
  1201.     if ((*ppErrors)) {CoTaskMemFree ((*ppErrors));};
  1202.     return S_OK;
  1203.     }
  1204. HRESULT STDMETHODCALLTYPE IOPCAsyncIO_Refresh_vxproxy (IOPCAsyncIO* pThis, DWORD dwConnection, OPCDATASOURCE dwSource, DWORD* pTransactionID)
  1205.     {
  1206.     RPC_PROXY_MSG msg (IID_IOPCAsyncIO, RpcMode::OBJECT, 5, pThis);
  1207.     NDRTYPES ndrtypes;
  1208.     HRESULT hrMethod;
  1209.     HRESULT hr;
  1210.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  1211.     hr=widlMarshal (&dwConnection, pms, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1212.     hr=widlMarshal (&dwSource, pms, ndrtypes.enum_t ()); if (FAILED(hr)) return hr;
  1213.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  1214.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  1215.     hr=widlUnmarshal (&pTransactionID, pus, ndrtypes.refptr_t(ndrtypes.ulong_t ())); if (FAILED(hr)) return hr;
  1216.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  1217.     if (FAILED(hr))
  1218.         return hr;
  1219.     return hrMethod;
  1220.     }
  1221. HRESULT STDMETHODCALLTYPE IOPCAsyncIO_Refresh_vxstub (IOPCAsyncIO* pitf, RPC_STUB_MSG& msg)
  1222.     {
  1223.     NDRTYPES ndrtypes;
  1224.     HRESULT hr;
  1225.     HRESULT hrMethod;
  1226.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  1227.     DWORD dwConnection;
  1228.     hr=widlUnmarshal (&dwConnection, pus, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1229.     OPCDATASOURCE dwSource;
  1230.     hr=widlUnmarshal (&dwSource, pus, ndrtypes.enum_t ()); if (FAILED(hr)) return hr;
  1231.     DWORD pTransactionID_tmp;
  1232.     DWORD* pTransactionID = &pTransactionID_tmp;
  1233.     hrMethod = pitf->Refresh (dwConnection, dwSource, pTransactionID);
  1234.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  1235.     hr=widlMarshal (&pTransactionID, pms, ndrtypes.refptr_t(ndrtypes.ulong_t ())); if (FAILED(hr)) return hr;
  1236.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  1237.     if (FAILED(hr))
  1238.         return hr;
  1239.     return S_OK;
  1240.     }
  1241. HRESULT STDMETHODCALLTYPE IOPCAsyncIO_Cancel_vxproxy (IOPCAsyncIO* pThis, DWORD dwTransactionID)
  1242.     {
  1243.     RPC_PROXY_MSG msg (IID_IOPCAsyncIO, RpcMode::OBJECT, 6, pThis);
  1244.     NDRTYPES ndrtypes;
  1245.     HRESULT hrMethod;
  1246.     HRESULT hr;
  1247.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  1248.     hr=widlMarshal (&dwTransactionID, pms, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1249.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  1250.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  1251.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  1252.     if (FAILED(hr))
  1253.         return hr;
  1254.     return hrMethod;
  1255.     }
  1256. HRESULT STDMETHODCALLTYPE IOPCAsyncIO_Cancel_vxstub (IOPCAsyncIO* pitf, RPC_STUB_MSG& msg)
  1257.     {
  1258.     NDRTYPES ndrtypes;
  1259.     HRESULT hr;
  1260.     HRESULT hrMethod;
  1261.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  1262.     DWORD dwTransactionID;
  1263.     hr=widlUnmarshal (&dwTransactionID, pus, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1264.     hrMethod = pitf->Cancel (dwTransactionID);
  1265.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  1266.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  1267.     if (FAILED(hr))
  1268.         return hr;
  1269.     return S_OK;
  1270.     }
  1271. COM_VTABLE(IOPCAsyncIO) IOPCAsyncIO_vxproxy_vtbl = {
  1272.     COM_VTBL_HEADER
  1273.     COM_VTBL_METHOD(&IUnknown_QueryInterface_vxproxy),
  1274.     COM_VTBL_METHOD(&IUnknown_AddRef_vxproxy),
  1275.     COM_VTBL_METHOD(&IUnknown_Release_vxproxy),
  1276.     COM_VTBL_METHOD(&IOPCAsyncIO_Read_vxproxy),
  1277.     COM_VTBL_METHOD(&IOPCAsyncIO_Write_vxproxy),
  1278.     COM_VTBL_METHOD(&IOPCAsyncIO_Refresh_vxproxy),
  1279.     COM_VTBL_METHOD(&IOPCAsyncIO_Cancel_vxproxy),
  1280.     };
  1281. const PFN_ORPC_STUB stub_functbl_IOPCAsyncIO [] =
  1282.     {
  1283.     0,0,0,
  1284.     (PFN_ORPC_STUB) IOPCAsyncIO_Read_vxstub,
  1285.     (PFN_ORPC_STUB) IOPCAsyncIO_Write_vxstub,
  1286.     (PFN_ORPC_STUB) IOPCAsyncIO_Refresh_vxstub,
  1287.     (PFN_ORPC_STUB) IOPCAsyncIO_Cancel_vxstub,
  1288.     };
  1289. EXTERN_C const VXDCOM_STUB_DISPTBL IOPCAsyncIO_vxstub_disptbl =
  1290.     {
  1291.     7,
  1292.     stub_functbl_IOPCAsyncIO
  1293.     };
  1294. VXDCOM_PS_AUTOREGISTER(IOPCAsyncIO);
  1295. HRESULT STDMETHODCALLTYPE IOPCItemMgt_AddItems_vxproxy (IOPCItemMgt* pThis, DWORD dwCount, OPCITEMDEF* pItemArray, OPCITEMRESULT** ppAddResults, HRESULT** ppErrors)
  1296.     {
  1297.     RPC_PROXY_MSG msg (IID_IOPCItemMgt, RpcMode::OBJECT, 3, pThis);
  1298.     NDRTYPES ndrtypes;
  1299.     HRESULT hrMethod;
  1300.     HRESULT hr;
  1301.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  1302.     hr=widlMarshal (&dwCount, pms, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1303.     hr=widlMarshal (&pItemArray, pms, ndrtypes.refptr_t(ndrtypes.carray_t(StructDesc_tagOPCITEMDEF (ndrtypes), NDR_SIZEOF(OPCITEMDEF), dwCount))); if (FAILED(hr)) return hr;
  1304.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  1305.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  1306.     hr=widlUnmarshal (&ppAddResults, pus, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.carray_t(StructDesc_tagOPCITEMRESULT (ndrtypes), NDR_SIZEOF(OPCITEMRESULT))))); if (FAILED(hr)) return hr;
  1307.     hr=widlUnmarshal (&ppErrors, pus, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.carray_t(ndrtypes.long_t (), NDR_SIZEOF(HRESULT))))); if (FAILED(hr)) return hr;
  1308.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  1309.     if (FAILED(hr))
  1310.         return hr;
  1311.     return hrMethod;
  1312.     }
  1313. HRESULT STDMETHODCALLTYPE IOPCItemMgt_AddItems_vxstub (IOPCItemMgt* pitf, RPC_STUB_MSG& msg)
  1314.     {
  1315.     NDRTYPES ndrtypes;
  1316.     HRESULT hr;
  1317.     HRESULT hrMethod;
  1318.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  1319.     DWORD dwCount;
  1320.     hr=widlUnmarshal (&dwCount, pus, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1321.     OPCITEMDEF* pItemArray;
  1322.     hr=widlUnmarshal (&pItemArray, pus, ndrtypes.refptr_t(ndrtypes.carray_t(StructDesc_tagOPCITEMDEF (ndrtypes), NDR_SIZEOF(OPCITEMDEF)))); if (FAILED(hr)) return hr;
  1323.     OPCITEMRESULT* ppAddResults_tmp;
  1324.     OPCITEMRESULT** ppAddResults = &ppAddResults_tmp;
  1325.     HRESULT* ppErrors_tmp;
  1326.     HRESULT** ppErrors = &ppErrors_tmp;
  1327.     hrMethod = pitf->AddItems (dwCount, pItemArray, ppAddResults, ppErrors);
  1328.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  1329.     hr=widlMarshal (&ppAddResults, pms, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.carray_t(StructDesc_tagOPCITEMRESULT (ndrtypes), NDR_SIZEOF(OPCITEMRESULT), dwCount)))); if (FAILED(hr)) return hr;
  1330.     hr=widlMarshal (&ppErrors, pms, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.carray_t(ndrtypes.long_t (), NDR_SIZEOF(HRESULT), dwCount)))); if (FAILED(hr)) return hr;
  1331.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  1332.     if (FAILED(hr))
  1333.         return hr;
  1334.     if ((*ppAddResults)) {{for (DWORD __ix=0; __ix < dwCount; ++__ix) {if (((*ppAddResults)[__ix]).pBlob) {CoTaskMemFree (((*ppAddResults)[__ix]).pBlob);}}}CoTaskMemFree ((*ppAddResults));}if ((*ppErrors)) {CoTaskMemFree ((*ppErrors));};
  1335.     return S_OK;
  1336.     }
  1337. HRESULT STDMETHODCALLTYPE IOPCItemMgt_ValidateItems_vxproxy (IOPCItemMgt* pThis, DWORD dwCount, OPCITEMDEF* pItemArray, BOOL bBlobUpdate, OPCITEMRESULT** ppValidationResults, HRESULT** ppErrors)
  1338.     {
  1339.     RPC_PROXY_MSG msg (IID_IOPCItemMgt, RpcMode::OBJECT, 4, pThis);
  1340.     NDRTYPES ndrtypes;
  1341.     HRESULT hrMethod;
  1342.     HRESULT hr;
  1343.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  1344.     hr=widlMarshal (&dwCount, pms, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1345.     hr=widlMarshal (&pItemArray, pms, ndrtypes.refptr_t(ndrtypes.carray_t(StructDesc_tagOPCITEMDEF (ndrtypes), NDR_SIZEOF(OPCITEMDEF), dwCount))); if (FAILED(hr)) return hr;
  1346.     hr=widlMarshal (&bBlobUpdate, pms, ndrtypes.int_t ()); if (FAILED(hr)) return hr;
  1347.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  1348.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  1349.     hr=widlUnmarshal (&ppValidationResults, pus, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.carray_t(StructDesc_tagOPCITEMRESULT (ndrtypes), NDR_SIZEOF(OPCITEMRESULT))))); if (FAILED(hr)) return hr;
  1350.     hr=widlUnmarshal (&ppErrors, pus, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.carray_t(ndrtypes.long_t (), NDR_SIZEOF(HRESULT))))); if (FAILED(hr)) return hr;
  1351.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  1352.     if (FAILED(hr))
  1353.         return hr;
  1354.     return hrMethod;
  1355.     }
  1356. HRESULT STDMETHODCALLTYPE IOPCItemMgt_ValidateItems_vxstub (IOPCItemMgt* pitf, RPC_STUB_MSG& msg)
  1357.     {
  1358.     NDRTYPES ndrtypes;
  1359.     HRESULT hr;
  1360.     HRESULT hrMethod;
  1361.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  1362.     DWORD dwCount;
  1363.     hr=widlUnmarshal (&dwCount, pus, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1364.     OPCITEMDEF* pItemArray;
  1365.     hr=widlUnmarshal (&pItemArray, pus, ndrtypes.refptr_t(ndrtypes.carray_t(StructDesc_tagOPCITEMDEF (ndrtypes), NDR_SIZEOF(OPCITEMDEF)))); if (FAILED(hr)) return hr;
  1366.     BOOL bBlobUpdate;
  1367.     hr=widlUnmarshal (&bBlobUpdate, pus, ndrtypes.int_t ()); if (FAILED(hr)) return hr;
  1368.     OPCITEMRESULT* ppValidationResults_tmp;
  1369.     OPCITEMRESULT** ppValidationResults = &ppValidationResults_tmp;
  1370.     HRESULT* ppErrors_tmp;
  1371.     HRESULT** ppErrors = &ppErrors_tmp;
  1372.     hrMethod = pitf->ValidateItems (dwCount, pItemArray, bBlobUpdate, ppValidationResults, ppErrors);
  1373.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  1374.     hr=widlMarshal (&ppValidationResults, pms, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.carray_t(StructDesc_tagOPCITEMRESULT (ndrtypes), NDR_SIZEOF(OPCITEMRESULT), dwCount)))); if (FAILED(hr)) return hr;
  1375.     hr=widlMarshal (&ppErrors, pms, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.carray_t(ndrtypes.long_t (), NDR_SIZEOF(HRESULT), dwCount)))); if (FAILED(hr)) return hr;
  1376.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  1377.     if (FAILED(hr))
  1378.         return hr;
  1379.     if ((*ppValidationResults)) {{for (DWORD __ix=0; __ix < dwCount; ++__ix) {if (((*ppValidationResults)[__ix]).pBlob) {CoTaskMemFree (((*ppValidationResults)[__ix]).pBlob);}}}CoTaskMemFree ((*ppValidationResults));}if ((*ppErrors)) {CoTaskMemFree ((*ppErrors));};
  1380.     return S_OK;
  1381.     }
  1382. HRESULT STDMETHODCALLTYPE IOPCItemMgt_RemoveItems_vxproxy (IOPCItemMgt* pThis, DWORD dwCount, OPCHANDLE* phServer, HRESULT** ppErrors)
  1383.     {
  1384.     RPC_PROXY_MSG msg (IID_IOPCItemMgt, RpcMode::OBJECT, 5, pThis);
  1385.     NDRTYPES ndrtypes;
  1386.     HRESULT hrMethod;
  1387.     HRESULT hr;
  1388.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  1389.     hr=widlMarshal (&dwCount, pms, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1390.     hr=widlMarshal (&phServer, pms, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.ulong_t (), NDR_SIZEOF(OPCHANDLE), dwCount))); if (FAILED(hr)) return hr;
  1391.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  1392.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  1393.     hr=widlUnmarshal (&ppErrors, pus, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.carray_t(ndrtypes.long_t (), NDR_SIZEOF(HRESULT))))); if (FAILED(hr)) return hr;
  1394.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  1395.     if (FAILED(hr))
  1396.         return hr;
  1397.     return hrMethod;
  1398.     }
  1399. HRESULT STDMETHODCALLTYPE IOPCItemMgt_RemoveItems_vxstub (IOPCItemMgt* pitf, RPC_STUB_MSG& msg)
  1400.     {
  1401.     NDRTYPES ndrtypes;
  1402.     HRESULT hr;
  1403.     HRESULT hrMethod;
  1404.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  1405.     DWORD dwCount;
  1406.     hr=widlUnmarshal (&dwCount, pus, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1407.     OPCHANDLE* phServer;
  1408.     hr=widlUnmarshal (&phServer, pus, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.ulong_t (), NDR_SIZEOF(OPCHANDLE)))); if (FAILED(hr)) return hr;
  1409.     HRESULT* ppErrors_tmp;
  1410.     HRESULT** ppErrors = &ppErrors_tmp;
  1411.     hrMethod = pitf->RemoveItems (dwCount, phServer, ppErrors);
  1412.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  1413.     hr=widlMarshal (&ppErrors, pms, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.carray_t(ndrtypes.long_t (), NDR_SIZEOF(HRESULT), dwCount)))); if (FAILED(hr)) return hr;
  1414.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  1415.     if (FAILED(hr))
  1416.         return hr;
  1417.     if ((*ppErrors)) {CoTaskMemFree ((*ppErrors));};
  1418.     return S_OK;
  1419.     }
  1420. HRESULT STDMETHODCALLTYPE IOPCItemMgt_SetActiveState_vxproxy (IOPCItemMgt* pThis, DWORD dwCount, OPCHANDLE* phServer, BOOL bActive, HRESULT** ppErrors)
  1421.     {
  1422.     RPC_PROXY_MSG msg (IID_IOPCItemMgt, RpcMode::OBJECT, 6, pThis);
  1423.     NDRTYPES ndrtypes;
  1424.     HRESULT hrMethod;
  1425.     HRESULT hr;
  1426.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  1427.     hr=widlMarshal (&dwCount, pms, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1428.     hr=widlMarshal (&phServer, pms, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.ulong_t (), NDR_SIZEOF(OPCHANDLE), dwCount))); if (FAILED(hr)) return hr;
  1429.     hr=widlMarshal (&bActive, pms, ndrtypes.int_t ()); if (FAILED(hr)) return hr;
  1430.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  1431.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  1432.     hr=widlUnmarshal (&ppErrors, pus, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.carray_t(ndrtypes.long_t (), NDR_SIZEOF(HRESULT))))); if (FAILED(hr)) return hr;
  1433.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  1434.     if (FAILED(hr))
  1435.         return hr;
  1436.     return hrMethod;
  1437.     }
  1438. HRESULT STDMETHODCALLTYPE IOPCItemMgt_SetActiveState_vxstub (IOPCItemMgt* pitf, RPC_STUB_MSG& msg)
  1439.     {
  1440.     NDRTYPES ndrtypes;
  1441.     HRESULT hr;
  1442.     HRESULT hrMethod;
  1443.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  1444.     DWORD dwCount;
  1445.     hr=widlUnmarshal (&dwCount, pus, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1446.     OPCHANDLE* phServer;
  1447.     hr=widlUnmarshal (&phServer, pus, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.ulong_t (), NDR_SIZEOF(OPCHANDLE)))); if (FAILED(hr)) return hr;
  1448.     BOOL bActive;
  1449.     hr=widlUnmarshal (&bActive, pus, ndrtypes.int_t ()); if (FAILED(hr)) return hr;
  1450.     HRESULT* ppErrors_tmp;
  1451.     HRESULT** ppErrors = &ppErrors_tmp;
  1452.     hrMethod = pitf->SetActiveState (dwCount, phServer, bActive, ppErrors);
  1453.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  1454.     hr=widlMarshal (&ppErrors, pms, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.carray_t(ndrtypes.long_t (), NDR_SIZEOF(HRESULT), dwCount)))); if (FAILED(hr)) return hr;
  1455.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  1456.     if (FAILED(hr))
  1457.         return hr;
  1458.     if ((*ppErrors)) {CoTaskMemFree ((*ppErrors));};
  1459.     return S_OK;
  1460.     }
  1461. HRESULT STDMETHODCALLTYPE IOPCItemMgt_SetClientHandles_vxproxy (IOPCItemMgt* pThis, DWORD dwCount, OPCHANDLE* phServer, OPCHANDLE* phClient, HRESULT** ppErrors)
  1462.     {
  1463.     RPC_PROXY_MSG msg (IID_IOPCItemMgt, RpcMode::OBJECT, 7, pThis);
  1464.     NDRTYPES ndrtypes;
  1465.     HRESULT hrMethod;
  1466.     HRESULT hr;
  1467.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  1468.     hr=widlMarshal (&dwCount, pms, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1469.     hr=widlMarshal (&phServer, pms, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.ulong_t (), NDR_SIZEOF(OPCHANDLE), dwCount))); if (FAILED(hr)) return hr;
  1470.     hr=widlMarshal (&phClient, pms, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.ulong_t (), NDR_SIZEOF(OPCHANDLE), dwCount))); if (FAILED(hr)) return hr;
  1471.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  1472.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  1473.     hr=widlUnmarshal (&ppErrors, pus, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.carray_t(ndrtypes.long_t (), NDR_SIZEOF(HRESULT))))); if (FAILED(hr)) return hr;
  1474.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  1475.     if (FAILED(hr))
  1476.         return hr;
  1477.     return hrMethod;
  1478.     }
  1479. HRESULT STDMETHODCALLTYPE IOPCItemMgt_SetClientHandles_vxstub (IOPCItemMgt* pitf, RPC_STUB_MSG& msg)
  1480.     {
  1481.     NDRTYPES ndrtypes;
  1482.     HRESULT hr;
  1483.     HRESULT hrMethod;
  1484.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  1485.     DWORD dwCount;
  1486.     hr=widlUnmarshal (&dwCount, pus, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1487.     OPCHANDLE* phServer;
  1488.     hr=widlUnmarshal (&phServer, pus, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.ulong_t (), NDR_SIZEOF(OPCHANDLE)))); if (FAILED(hr)) return hr;
  1489.     OPCHANDLE* phClient;
  1490.     hr=widlUnmarshal (&phClient, pus, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.ulong_t (), NDR_SIZEOF(OPCHANDLE)))); if (FAILED(hr)) return hr;
  1491.     HRESULT* ppErrors_tmp;
  1492.     HRESULT** ppErrors = &ppErrors_tmp;
  1493.     hrMethod = pitf->SetClientHandles (dwCount, phServer, phClient, ppErrors);
  1494.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  1495.     hr=widlMarshal (&ppErrors, pms, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.carray_t(ndrtypes.long_t (), NDR_SIZEOF(HRESULT), dwCount)))); if (FAILED(hr)) return hr;
  1496.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  1497.     if (FAILED(hr))
  1498.         return hr;
  1499.     if ((*ppErrors)) {CoTaskMemFree ((*ppErrors));};
  1500.     return S_OK;
  1501.     }
  1502. HRESULT STDMETHODCALLTYPE IOPCItemMgt_SetDatatypes_vxproxy (IOPCItemMgt* pThis, DWORD dwCount, OPCHANDLE* phServer, VARTYPE* pRequestedDatatypes, HRESULT** ppErrors)
  1503.     {
  1504.     RPC_PROXY_MSG msg (IID_IOPCItemMgt, RpcMode::OBJECT, 8, pThis);
  1505.     NDRTYPES ndrtypes;
  1506.     HRESULT hrMethod;
  1507.     HRESULT hr;
  1508.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  1509.     hr=widlMarshal (&dwCount, pms, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1510.     hr=widlMarshal (&phServer, pms, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.ulong_t (), NDR_SIZEOF(OPCHANDLE), dwCount))); if (FAILED(hr)) return hr;
  1511.     hr=widlMarshal (&pRequestedDatatypes, pms, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.ushort_t (), NDR_SIZEOF(VARTYPE), dwCount))); if (FAILED(hr)) return hr;
  1512.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  1513.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  1514.     hr=widlUnmarshal (&ppErrors, pus, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.carray_t(ndrtypes.long_t (), NDR_SIZEOF(HRESULT))))); if (FAILED(hr)) return hr;
  1515.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  1516.     if (FAILED(hr))
  1517.         return hr;
  1518.     return hrMethod;
  1519.     }
  1520. HRESULT STDMETHODCALLTYPE IOPCItemMgt_SetDatatypes_vxstub (IOPCItemMgt* pitf, RPC_STUB_MSG& msg)
  1521.     {
  1522.     NDRTYPES ndrtypes;
  1523.     HRESULT hr;
  1524.     HRESULT hrMethod;
  1525.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  1526.     DWORD dwCount;
  1527.     hr=widlUnmarshal (&dwCount, pus, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1528.     OPCHANDLE* phServer;
  1529.     hr=widlUnmarshal (&phServer, pus, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.ulong_t (), NDR_SIZEOF(OPCHANDLE)))); if (FAILED(hr)) return hr;
  1530.     VARTYPE* pRequestedDatatypes;
  1531.     hr=widlUnmarshal (&pRequestedDatatypes, pus, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.ushort_t (), NDR_SIZEOF(VARTYPE)))); if (FAILED(hr)) return hr;
  1532.     HRESULT* ppErrors_tmp;
  1533.     HRESULT** ppErrors = &ppErrors_tmp;
  1534.     hrMethod = pitf->SetDatatypes (dwCount, phServer, pRequestedDatatypes, ppErrors);
  1535.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  1536.     hr=widlMarshal (&ppErrors, pms, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.carray_t(ndrtypes.long_t (), NDR_SIZEOF(HRESULT), dwCount)))); if (FAILED(hr)) return hr;
  1537.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  1538.     if (FAILED(hr))
  1539.         return hr;
  1540.     if ((*ppErrors)) {CoTaskMemFree ((*ppErrors));};
  1541.     return S_OK;
  1542.     }
  1543. HRESULT STDMETHODCALLTYPE IOPCItemMgt_CreateEnumerator_vxproxy (IOPCItemMgt* pThis, REFIID riid, LPUNKNOWN* ppUnk)
  1544.     {
  1545.     RPC_PROXY_MSG msg (IID_IOPCItemMgt, RpcMode::OBJECT, 9, pThis);
  1546.     NDRTYPES ndrtypes;
  1547.     HRESULT hrMethod;
  1548.     HRESULT hr;
  1549.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  1550.     hr=widlMarshal (&riid, pms, StructDesc__GUID (ndrtypes)); if (FAILED(hr)) return hr;
  1551.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  1552.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  1553.     hr=widlUnmarshal (&ppUnk, pus, ndrtypes.refptr_t(ndrtypes.interfaceptr_t (IID_IUnknown))); if (FAILED(hr)) return hr;
  1554.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  1555.     if (FAILED(hr))
  1556.         return hr;
  1557.     return hrMethod;
  1558.     }
  1559. HRESULT STDMETHODCALLTYPE IOPCItemMgt_CreateEnumerator_vxstub (IOPCItemMgt* pitf, RPC_STUB_MSG& msg)
  1560.     {
  1561.     NDRTYPES ndrtypes;
  1562.     HRESULT hr;
  1563.     HRESULT hrMethod;
  1564.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  1565.     IID riid;
  1566.     hr=widlUnmarshal (&riid, pus, StructDesc__GUID (ndrtypes)); if (FAILED(hr)) return hr;
  1567.     LPUNKNOWN ppUnk_tmp;
  1568.     LPUNKNOWN* ppUnk = &ppUnk_tmp;
  1569.     hrMethod = pitf->CreateEnumerator (riid, ppUnk);
  1570.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  1571.     hr=widlMarshal (&ppUnk, pms, ndrtypes.refptr_t(ndrtypes.interfaceptr_t (IID_IUnknown))); if (FAILED(hr)) return hr;
  1572.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  1573.     if (FAILED(hr))
  1574.         return hr;
  1575.     if ((*ppUnk)) {((*ppUnk))->Release ();};
  1576.     return S_OK;
  1577.     }
  1578. COM_VTABLE(IOPCItemMgt) IOPCItemMgt_vxproxy_vtbl = {
  1579.     COM_VTBL_HEADER
  1580.     COM_VTBL_METHOD(&IUnknown_QueryInterface_vxproxy),
  1581.     COM_VTBL_METHOD(&IUnknown_AddRef_vxproxy),
  1582.     COM_VTBL_METHOD(&IUnknown_Release_vxproxy),
  1583.     COM_VTBL_METHOD(&IOPCItemMgt_AddItems_vxproxy),
  1584.     COM_VTBL_METHOD(&IOPCItemMgt_ValidateItems_vxproxy),
  1585.     COM_VTBL_METHOD(&IOPCItemMgt_RemoveItems_vxproxy),
  1586.     COM_VTBL_METHOD(&IOPCItemMgt_SetActiveState_vxproxy),
  1587.     COM_VTBL_METHOD(&IOPCItemMgt_SetClientHandles_vxproxy),
  1588.     COM_VTBL_METHOD(&IOPCItemMgt_SetDatatypes_vxproxy),
  1589.     COM_VTBL_METHOD(&IOPCItemMgt_CreateEnumerator_vxproxy),
  1590.     };
  1591. const PFN_ORPC_STUB stub_functbl_IOPCItemMgt [] =
  1592.     {
  1593.     0,0,0,
  1594.     (PFN_ORPC_STUB) IOPCItemMgt_AddItems_vxstub,
  1595.     (PFN_ORPC_STUB) IOPCItemMgt_ValidateItems_vxstub,
  1596.     (PFN_ORPC_STUB) IOPCItemMgt_RemoveItems_vxstub,
  1597.     (PFN_ORPC_STUB) IOPCItemMgt_SetActiveState_vxstub,
  1598.     (PFN_ORPC_STUB) IOPCItemMgt_SetClientHandles_vxstub,
  1599.     (PFN_ORPC_STUB) IOPCItemMgt_SetDatatypes_vxstub,
  1600.     (PFN_ORPC_STUB) IOPCItemMgt_CreateEnumerator_vxstub,
  1601.     };
  1602. EXTERN_C const VXDCOM_STUB_DISPTBL IOPCItemMgt_vxstub_disptbl =
  1603.     {
  1604.     10,
  1605.     stub_functbl_IOPCItemMgt
  1606.     };
  1607. VXDCOM_PS_AUTOREGISTER(IOPCItemMgt);
  1608. HRESULT STDMETHODCALLTYPE IEnumOPCItemAttributes_Next_vxproxy (IEnumOPCItemAttributes* pThis, ULONG celt, OPCITEMATTRIBUTES** ppItemArray, ULONG* pceltFetched)
  1609.     {
  1610.     RPC_PROXY_MSG msg (IID_IEnumOPCItemAttributes, RpcMode::OBJECT, 3, pThis);
  1611.     NDRTYPES ndrtypes;
  1612.     HRESULT hrMethod;
  1613.     HRESULT hr;
  1614.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  1615.     hr=widlMarshal (&celt, pms, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1616.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  1617.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  1618.     hr=widlUnmarshal (&ppItemArray, pus, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.carray_t(StructDesc_tagOPCITEMATTRIBUTES (ndrtypes), NDR_SIZEOF(OPCITEMATTRIBUTES))))); if (FAILED(hr)) return hr;
  1619.     hr=widlUnmarshal (&pceltFetched, pus, ndrtypes.refptr_t(ndrtypes.ulong_t ())); if (FAILED(hr)) return hr;
  1620.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  1621.     if (FAILED(hr))
  1622.         return hr;
  1623.     return hrMethod;
  1624.     }
  1625. HRESULT STDMETHODCALLTYPE IEnumOPCItemAttributes_Next_vxstub (IEnumOPCItemAttributes* pitf, RPC_STUB_MSG& msg)
  1626.     {
  1627.     NDRTYPES ndrtypes;
  1628.     HRESULT hr;
  1629.     HRESULT hrMethod;
  1630.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  1631.     ULONG celt;
  1632.     hr=widlUnmarshal (&celt, pus, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1633.     OPCITEMATTRIBUTES* ppItemArray_tmp;
  1634.     OPCITEMATTRIBUTES** ppItemArray = &ppItemArray_tmp;
  1635.     ULONG pceltFetched_tmp;
  1636.     ULONG* pceltFetched = &pceltFetched_tmp;
  1637.     hrMethod = pitf->Next (celt, ppItemArray, pceltFetched);
  1638.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  1639.     hr=widlMarshal (&ppItemArray, pms, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.carray_t(StructDesc_tagOPCITEMATTRIBUTES (ndrtypes), NDR_SIZEOF(OPCITEMATTRIBUTES), *pceltFetched)))); if (FAILED(hr)) return hr;
  1640.     hr=widlMarshal (&pceltFetched, pms, ndrtypes.refptr_t(ndrtypes.ulong_t ())); if (FAILED(hr)) return hr;
  1641.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  1642.     if (FAILED(hr))
  1643.         return hr;
  1644.     if ((*ppItemArray)) {{for (DWORD __ix=0; __ix < *pceltFetched; ++__ix) {if (((*ppItemArray)[__ix]).szAccessPath) {CoTaskMemFree (((*ppItemArray)[__ix]).szAccessPath);}if (((*ppItemArray)[__ix]).szItemID) {CoTaskMemFree (((*ppItemArray)[__ix]).szItemID);}if (((*ppItemArray)[__ix]).pBlob) {CoTaskMemFree (((*ppItemArray)[__ix]).pBlob);}::VariantClear (&(((*ppItemArray)[__ix]).vEUInfo)); }}CoTaskMemFree ((*ppItemArray));};
  1645.     return S_OK;
  1646.     }
  1647. HRESULT STDMETHODCALLTYPE IEnumOPCItemAttributes_Skip_vxproxy (IEnumOPCItemAttributes* pThis, ULONG celt)
  1648.     {
  1649.     RPC_PROXY_MSG msg (IID_IEnumOPCItemAttributes, RpcMode::OBJECT, 4, pThis);
  1650.     NDRTYPES ndrtypes;
  1651.     HRESULT hrMethod;
  1652.     HRESULT hr;
  1653.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  1654.     hr=widlMarshal (&celt, pms, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1655.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  1656.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  1657.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  1658.     if (FAILED(hr))
  1659.         return hr;
  1660.     return hrMethod;
  1661.     }
  1662. HRESULT STDMETHODCALLTYPE IEnumOPCItemAttributes_Skip_vxstub (IEnumOPCItemAttributes* pitf, RPC_STUB_MSG& msg)
  1663.     {
  1664.     NDRTYPES ndrtypes;
  1665.     HRESULT hr;
  1666.     HRESULT hrMethod;
  1667.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  1668.     ULONG celt;
  1669.     hr=widlUnmarshal (&celt, pus, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1670.     hrMethod = pitf->Skip (celt);
  1671.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  1672.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  1673.     if (FAILED(hr))
  1674.         return hr;
  1675.     return S_OK;
  1676.     }
  1677. HRESULT STDMETHODCALLTYPE IEnumOPCItemAttributes_Reset_vxproxy (IEnumOPCItemAttributes* pThis)
  1678.     {
  1679.     RPC_PROXY_MSG msg (IID_IEnumOPCItemAttributes, RpcMode::OBJECT, 5, pThis);
  1680.     NDRTYPES ndrtypes;
  1681.     HRESULT hrMethod;
  1682.     HRESULT hr;
  1683.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  1684.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  1685.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  1686.     if (FAILED(hr))
  1687.         return hr;
  1688.     return hrMethod;
  1689.     }
  1690. HRESULT STDMETHODCALLTYPE IEnumOPCItemAttributes_Reset_vxstub (IEnumOPCItemAttributes* pitf, RPC_STUB_MSG& msg)
  1691.     {
  1692.     NDRTYPES ndrtypes;
  1693.     HRESULT hr;
  1694.     HRESULT hrMethod;
  1695.     hrMethod = pitf->Reset ();
  1696.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  1697.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  1698.     if (FAILED(hr))
  1699.         return hr;
  1700.     return S_OK;
  1701.     }
  1702. HRESULT STDMETHODCALLTYPE IEnumOPCItemAttributes_Clone_vxproxy (IEnumOPCItemAttributes* pThis, IEnumOPCItemAttributes** ppEnumItemAttributes)
  1703.     {
  1704.     RPC_PROXY_MSG msg (IID_IEnumOPCItemAttributes, RpcMode::OBJECT, 6, pThis);
  1705.     NDRTYPES ndrtypes;
  1706.     HRESULT hrMethod;
  1707.     HRESULT hr;
  1708.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  1709.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  1710.     hr=widlUnmarshal (&ppEnumItemAttributes, pus, ndrtypes.refptr_t(ndrtypes.interfaceptr_t (IID_IEnumOPCItemAttributes))); if (FAILED(hr)) return hr;
  1711.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  1712.     if (FAILED(hr))
  1713.         return hr;
  1714.     return hrMethod;
  1715.     }
  1716. HRESULT STDMETHODCALLTYPE IEnumOPCItemAttributes_Clone_vxstub (IEnumOPCItemAttributes* pitf, RPC_STUB_MSG& msg)
  1717.     {
  1718.     NDRTYPES ndrtypes;
  1719.     HRESULT hr;
  1720.     HRESULT hrMethod;
  1721.     IEnumOPCItemAttributes* ppEnumItemAttributes_tmp = 0;
  1722.     IEnumOPCItemAttributes** ppEnumItemAttributes = &ppEnumItemAttributes_tmp;
  1723.     hrMethod = pitf->Clone (ppEnumItemAttributes);
  1724.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  1725.     hr=widlMarshal (&ppEnumItemAttributes, pms, ndrtypes.refptr_t(ndrtypes.interfaceptr_t (IID_IEnumOPCItemAttributes))); if (FAILED(hr)) return hr;
  1726.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  1727.     if (FAILED(hr))
  1728.         return hr;
  1729.     if ((*ppEnumItemAttributes)) {((*ppEnumItemAttributes))->Release ();};
  1730.     return S_OK;
  1731.     }
  1732. COM_VTABLE(IEnumOPCItemAttributes) IEnumOPCItemAttributes_vxproxy_vtbl = {
  1733.     COM_VTBL_HEADER
  1734.     COM_VTBL_METHOD(&IUnknown_QueryInterface_vxproxy),
  1735.     COM_VTBL_METHOD(&IUnknown_AddRef_vxproxy),
  1736.     COM_VTBL_METHOD(&IUnknown_Release_vxproxy),
  1737.     COM_VTBL_METHOD(&IEnumOPCItemAttributes_Next_vxproxy),
  1738.     COM_VTBL_METHOD(&IEnumOPCItemAttributes_Skip_vxproxy),
  1739.     COM_VTBL_METHOD(&IEnumOPCItemAttributes_Reset_vxproxy),
  1740.     COM_VTBL_METHOD(&IEnumOPCItemAttributes_Clone_vxproxy),
  1741.     };
  1742. const PFN_ORPC_STUB stub_functbl_IEnumOPCItemAttributes [] =
  1743.     {
  1744.     0,0,0,
  1745.     (PFN_ORPC_STUB) IEnumOPCItemAttributes_Next_vxstub,
  1746.     (PFN_ORPC_STUB) IEnumOPCItemAttributes_Skip_vxstub,
  1747.     (PFN_ORPC_STUB) IEnumOPCItemAttributes_Reset_vxstub,
  1748.     (PFN_ORPC_STUB) IEnumOPCItemAttributes_Clone_vxstub,
  1749.     };
  1750. EXTERN_C const VXDCOM_STUB_DISPTBL IEnumOPCItemAttributes_vxstub_disptbl =
  1751.     {
  1752.     7,
  1753.     stub_functbl_IEnumOPCItemAttributes
  1754.     };
  1755. VXDCOM_PS_AUTOREGISTER(IEnumOPCItemAttributes);
  1756. HRESULT STDMETHODCALLTYPE IOPCDataCallback_OnDataChange_vxproxy (IOPCDataCallback* pThis, DWORD dwTransid, OPCHANDLE hGroup, HRESULT hrMasterquality, HRESULT hrMastererror, DWORD dwCount, OPCHANDLE* phClientItems, VARIANT* pvValues, WORD* pwQualities, FILETIME* pftTimeStamps, HRESULT* pErrors)
  1757.     {
  1758.     RPC_PROXY_MSG msg (IID_IOPCDataCallback, RpcMode::OBJECT, 3, pThis);
  1759.     NDRTYPES ndrtypes;
  1760.     HRESULT hrMethod;
  1761.     HRESULT hr;
  1762.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  1763.     hr=widlMarshal (&dwTransid, pms, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1764.     hr=widlMarshal (&hGroup, pms, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1765.     hr=widlMarshal (&hrMasterquality, pms, ndrtypes.long_t ()); if (FAILED(hr)) return hr;
  1766.     hr=widlMarshal (&hrMastererror, pms, ndrtypes.long_t ()); if (FAILED(hr)) return hr;
  1767.     hr=widlMarshal (&dwCount, pms, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1768.     hr=widlMarshal (&phClientItems, pms, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.ulong_t (), NDR_SIZEOF(OPCHANDLE), dwCount))); if (FAILED(hr)) return hr;
  1769.     hr=widlMarshal (&pvValues, pms, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.variant_t (), NDR_SIZEOF(VARIANT), dwCount))); if (FAILED(hr)) return hr;
  1770.     hr=widlMarshal (&pwQualities, pms, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.short_t (), NDR_SIZEOF(WORD), dwCount))); if (FAILED(hr)) return hr;
  1771.     hr=widlMarshal (&pftTimeStamps, pms, ndrtypes.refptr_t(ndrtypes.carray_t(StructDesc__FILETIME (ndrtypes), NDR_SIZEOF(FILETIME), dwCount))); if (FAILED(hr)) return hr;
  1772.     hr=widlMarshal (&pErrors, pms, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.long_t (), NDR_SIZEOF(HRESULT), dwCount))); if (FAILED(hr)) return hr;
  1773.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  1774.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  1775.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  1776.     if (FAILED(hr))
  1777.         return hr;
  1778.     return hrMethod;
  1779.     }
  1780. HRESULT STDMETHODCALLTYPE IOPCDataCallback_OnDataChange_vxstub (IOPCDataCallback* pitf, RPC_STUB_MSG& msg)
  1781.     {
  1782.     NDRTYPES ndrtypes;
  1783.     HRESULT hr;
  1784.     HRESULT hrMethod;
  1785.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  1786.     DWORD dwTransid;
  1787.     hr=widlUnmarshal (&dwTransid, pus, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1788.     OPCHANDLE hGroup;
  1789.     hr=widlUnmarshal (&hGroup, pus, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1790.     HRESULT hrMasterquality;
  1791.     hr=widlUnmarshal (&hrMasterquality, pus, ndrtypes.long_t ()); if (FAILED(hr)) return hr;
  1792.     HRESULT hrMastererror;
  1793.     hr=widlUnmarshal (&hrMastererror, pus, ndrtypes.long_t ()); if (FAILED(hr)) return hr;
  1794.     DWORD dwCount;
  1795.     hr=widlUnmarshal (&dwCount, pus, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1796.     OPCHANDLE* phClientItems;
  1797.     hr=widlUnmarshal (&phClientItems, pus, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.ulong_t (), NDR_SIZEOF(OPCHANDLE)))); if (FAILED(hr)) return hr;
  1798.     VARIANT* pvValues;
  1799.     hr=widlUnmarshal (&pvValues, pus, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.variant_t (), NDR_SIZEOF(VARIANT)))); if (FAILED(hr)) return hr;
  1800.     WORD* pwQualities;
  1801.     hr=widlUnmarshal (&pwQualities, pus, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.short_t (), NDR_SIZEOF(WORD)))); if (FAILED(hr)) return hr;
  1802.     FILETIME* pftTimeStamps;
  1803.     hr=widlUnmarshal (&pftTimeStamps, pus, ndrtypes.refptr_t(ndrtypes.carray_t(StructDesc__FILETIME (ndrtypes), NDR_SIZEOF(FILETIME)))); if (FAILED(hr)) return hr;
  1804.     HRESULT* pErrors;
  1805.     hr=widlUnmarshal (&pErrors, pus, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.long_t (), NDR_SIZEOF(HRESULT)))); if (FAILED(hr)) return hr;
  1806.     hrMethod = pitf->OnDataChange (dwTransid, hGroup, hrMasterquality, hrMastererror, dwCount, phClientItems, pvValues, pwQualities, pftTimeStamps, pErrors);
  1807.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  1808.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  1809.     if (FAILED(hr))
  1810.         return hr;
  1811.     return S_OK;
  1812.     }
  1813. HRESULT STDMETHODCALLTYPE IOPCDataCallback_OnReadComplete_vxproxy (IOPCDataCallback* pThis, DWORD dwTransid, OPCHANDLE hGroup, HRESULT hrMasterquality, HRESULT hrMastererror, DWORD dwCount, OPCHANDLE* phClientItems, VARIANT* pvValues, WORD* pwQualities, FILETIME* pftTimeStamps, HRESULT* pErrors)
  1814.     {
  1815.     RPC_PROXY_MSG msg (IID_IOPCDataCallback, RpcMode::OBJECT, 4, pThis);
  1816.     NDRTYPES ndrtypes;
  1817.     HRESULT hrMethod;
  1818.     HRESULT hr;
  1819.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  1820.     hr=widlMarshal (&dwTransid, pms, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1821.     hr=widlMarshal (&hGroup, pms, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1822.     hr=widlMarshal (&hrMasterquality, pms, ndrtypes.long_t ()); if (FAILED(hr)) return hr;
  1823.     hr=widlMarshal (&hrMastererror, pms, ndrtypes.long_t ()); if (FAILED(hr)) return hr;
  1824.     hr=widlMarshal (&dwCount, pms, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1825.     hr=widlMarshal (&phClientItems, pms, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.ulong_t (), NDR_SIZEOF(OPCHANDLE), dwCount))); if (FAILED(hr)) return hr;
  1826.     hr=widlMarshal (&pvValues, pms, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.variant_t (), NDR_SIZEOF(VARIANT), dwCount))); if (FAILED(hr)) return hr;
  1827.     hr=widlMarshal (&pwQualities, pms, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.short_t (), NDR_SIZEOF(WORD), dwCount))); if (FAILED(hr)) return hr;
  1828.     hr=widlMarshal (&pftTimeStamps, pms, ndrtypes.refptr_t(ndrtypes.carray_t(StructDesc__FILETIME (ndrtypes), NDR_SIZEOF(FILETIME), dwCount))); if (FAILED(hr)) return hr;
  1829.     hr=widlMarshal (&pErrors, pms, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.long_t (), NDR_SIZEOF(HRESULT), dwCount))); if (FAILED(hr)) return hr;
  1830.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  1831.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  1832.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  1833.     if (FAILED(hr))
  1834.         return hr;
  1835.     return hrMethod;
  1836.     }
  1837. HRESULT STDMETHODCALLTYPE IOPCDataCallback_OnReadComplete_vxstub (IOPCDataCallback* pitf, RPC_STUB_MSG& msg)
  1838.     {
  1839.     NDRTYPES ndrtypes;
  1840.     HRESULT hr;
  1841.     HRESULT hrMethod;
  1842.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  1843.     DWORD dwTransid;
  1844.     hr=widlUnmarshal (&dwTransid, pus, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1845.     OPCHANDLE hGroup;
  1846.     hr=widlUnmarshal (&hGroup, pus, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1847.     HRESULT hrMasterquality;
  1848.     hr=widlUnmarshal (&hrMasterquality, pus, ndrtypes.long_t ()); if (FAILED(hr)) return hr;
  1849.     HRESULT hrMastererror;
  1850.     hr=widlUnmarshal (&hrMastererror, pus, ndrtypes.long_t ()); if (FAILED(hr)) return hr;
  1851.     DWORD dwCount;
  1852.     hr=widlUnmarshal (&dwCount, pus, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1853.     OPCHANDLE* phClientItems;
  1854.     hr=widlUnmarshal (&phClientItems, pus, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.ulong_t (), NDR_SIZEOF(OPCHANDLE)))); if (FAILED(hr)) return hr;
  1855.     VARIANT* pvValues;
  1856.     hr=widlUnmarshal (&pvValues, pus, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.variant_t (), NDR_SIZEOF(VARIANT)))); if (FAILED(hr)) return hr;
  1857.     WORD* pwQualities;
  1858.     hr=widlUnmarshal (&pwQualities, pus, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.short_t (), NDR_SIZEOF(WORD)))); if (FAILED(hr)) return hr;
  1859.     FILETIME* pftTimeStamps;
  1860.     hr=widlUnmarshal (&pftTimeStamps, pus, ndrtypes.refptr_t(ndrtypes.carray_t(StructDesc__FILETIME (ndrtypes), NDR_SIZEOF(FILETIME)))); if (FAILED(hr)) return hr;
  1861.     HRESULT* pErrors;
  1862.     hr=widlUnmarshal (&pErrors, pus, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.long_t (), NDR_SIZEOF(HRESULT)))); if (FAILED(hr)) return hr;
  1863.     hrMethod = pitf->OnReadComplete (dwTransid, hGroup, hrMasterquality, hrMastererror, dwCount, phClientItems, pvValues, pwQualities, pftTimeStamps, pErrors);
  1864.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  1865.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  1866.     if (FAILED(hr))
  1867.         return hr;
  1868.     return S_OK;
  1869.     }
  1870. HRESULT STDMETHODCALLTYPE IOPCDataCallback_OnWriteComplete_vxproxy (IOPCDataCallback* pThis, DWORD dwTransid, OPCHANDLE hGroup, HRESULT hrMastererr, DWORD dwCount, OPCHANDLE* pClienthandles, HRESULT* pErrors)
  1871.     {
  1872.     RPC_PROXY_MSG msg (IID_IOPCDataCallback, RpcMode::OBJECT, 5, pThis);
  1873.     NDRTYPES ndrtypes;
  1874.     HRESULT hrMethod;
  1875.     HRESULT hr;
  1876.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  1877.     hr=widlMarshal (&dwTransid, pms, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1878.     hr=widlMarshal (&hGroup, pms, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1879.     hr=widlMarshal (&hrMastererr, pms, ndrtypes.long_t ()); if (FAILED(hr)) return hr;
  1880.     hr=widlMarshal (&dwCount, pms, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1881.     hr=widlMarshal (&pClienthandles, pms, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.ulong_t (), NDR_SIZEOF(OPCHANDLE), dwCount))); if (FAILED(hr)) return hr;
  1882.     hr=widlMarshal (&pErrors, pms, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.long_t (), NDR_SIZEOF(HRESULT), dwCount))); if (FAILED(hr)) return hr;
  1883.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  1884.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  1885.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  1886.     if (FAILED(hr))
  1887.         return hr;
  1888.     return hrMethod;
  1889.     }
  1890. HRESULT STDMETHODCALLTYPE IOPCDataCallback_OnWriteComplete_vxstub (IOPCDataCallback* pitf, RPC_STUB_MSG& msg)
  1891.     {
  1892.     NDRTYPES ndrtypes;
  1893.     HRESULT hr;
  1894.     HRESULT hrMethod;
  1895.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  1896.     DWORD dwTransid;
  1897.     hr=widlUnmarshal (&dwTransid, pus, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1898.     OPCHANDLE hGroup;
  1899.     hr=widlUnmarshal (&hGroup, pus, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1900.     HRESULT hrMastererr;
  1901.     hr=widlUnmarshal (&hrMastererr, pus, ndrtypes.long_t ()); if (FAILED(hr)) return hr;
  1902.     DWORD dwCount;
  1903.     hr=widlUnmarshal (&dwCount, pus, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1904.     OPCHANDLE* pClienthandles;
  1905.     hr=widlUnmarshal (&pClienthandles, pus, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.ulong_t (), NDR_SIZEOF(OPCHANDLE)))); if (FAILED(hr)) return hr;
  1906.     HRESULT* pErrors;
  1907.     hr=widlUnmarshal (&pErrors, pus, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.long_t (), NDR_SIZEOF(HRESULT)))); if (FAILED(hr)) return hr;
  1908.     hrMethod = pitf->OnWriteComplete (dwTransid, hGroup, hrMastererr, dwCount, pClienthandles, pErrors);
  1909.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  1910.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  1911.     if (FAILED(hr))
  1912.         return hr;
  1913.     return S_OK;
  1914.     }
  1915. HRESULT STDMETHODCALLTYPE IOPCDataCallback_OnCancelComplete_vxproxy (IOPCDataCallback* pThis, DWORD dwTransid, OPCHANDLE hGroup)
  1916.     {
  1917.     RPC_PROXY_MSG msg (IID_IOPCDataCallback, RpcMode::OBJECT, 6, pThis);
  1918.     NDRTYPES ndrtypes;
  1919.     HRESULT hrMethod;
  1920.     HRESULT hr;
  1921.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  1922.     hr=widlMarshal (&dwTransid, pms, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1923.     hr=widlMarshal (&hGroup, pms, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1924.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  1925.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  1926.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  1927.     if (FAILED(hr))
  1928.         return hr;
  1929.     return hrMethod;
  1930.     }
  1931. HRESULT STDMETHODCALLTYPE IOPCDataCallback_OnCancelComplete_vxstub (IOPCDataCallback* pitf, RPC_STUB_MSG& msg)
  1932.     {
  1933.     NDRTYPES ndrtypes;
  1934.     HRESULT hr;
  1935.     HRESULT hrMethod;
  1936.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  1937.     DWORD dwTransid;
  1938.     hr=widlUnmarshal (&dwTransid, pus, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1939.     OPCHANDLE hGroup;
  1940.     hr=widlUnmarshal (&hGroup, pus, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1941.     hrMethod = pitf->OnCancelComplete (dwTransid, hGroup);
  1942.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  1943.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  1944.     if (FAILED(hr))
  1945.         return hr;
  1946.     return S_OK;
  1947.     }
  1948. COM_VTABLE(IOPCDataCallback) IOPCDataCallback_vxproxy_vtbl = {
  1949.     COM_VTBL_HEADER
  1950.     COM_VTBL_METHOD(&IUnknown_QueryInterface_vxproxy),
  1951.     COM_VTBL_METHOD(&IUnknown_AddRef_vxproxy),
  1952.     COM_VTBL_METHOD(&IUnknown_Release_vxproxy),
  1953.     COM_VTBL_METHOD(&IOPCDataCallback_OnDataChange_vxproxy),
  1954.     COM_VTBL_METHOD(&IOPCDataCallback_OnReadComplete_vxproxy),
  1955.     COM_VTBL_METHOD(&IOPCDataCallback_OnWriteComplete_vxproxy),
  1956.     COM_VTBL_METHOD(&IOPCDataCallback_OnCancelComplete_vxproxy),
  1957.     };
  1958. const PFN_ORPC_STUB stub_functbl_IOPCDataCallback [] =
  1959.     {
  1960.     0,0,0,
  1961.     (PFN_ORPC_STUB) IOPCDataCallback_OnDataChange_vxstub,
  1962.     (PFN_ORPC_STUB) IOPCDataCallback_OnReadComplete_vxstub,
  1963.     (PFN_ORPC_STUB) IOPCDataCallback_OnWriteComplete_vxstub,
  1964.     (PFN_ORPC_STUB) IOPCDataCallback_OnCancelComplete_vxstub,
  1965.     };
  1966. EXTERN_C const VXDCOM_STUB_DISPTBL IOPCDataCallback_vxstub_disptbl =
  1967.     {
  1968.     7,
  1969.     stub_functbl_IOPCDataCallback
  1970.     };
  1971. VXDCOM_PS_AUTOREGISTER(IOPCDataCallback);
  1972. HRESULT STDMETHODCALLTYPE IOPCAsyncIO2_Read_vxproxy (IOPCAsyncIO2* pThis, DWORD dwCount, OPCHANDLE* phServer, DWORD dwTransactionID, DWORD* pdwCancelID, HRESULT** ppErrors)
  1973.     {
  1974.     RPC_PROXY_MSG msg (IID_IOPCAsyncIO2, RpcMode::OBJECT, 3, pThis);
  1975.     NDRTYPES ndrtypes;
  1976.     HRESULT hrMethod;
  1977.     HRESULT hr;
  1978.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  1979.     hr=widlMarshal (&dwCount, pms, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1980.     hr=widlMarshal (&phServer, pms, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.ulong_t (), NDR_SIZEOF(OPCHANDLE), dwCount))); if (FAILED(hr)) return hr;
  1981.     hr=widlMarshal (&dwTransactionID, pms, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1982.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  1983.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  1984.     hr=widlUnmarshal (&pdwCancelID, pus, ndrtypes.refptr_t(ndrtypes.ulong_t ())); if (FAILED(hr)) return hr;
  1985.     hr=widlUnmarshal (&ppErrors, pus, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.carray_t(ndrtypes.long_t (), NDR_SIZEOF(HRESULT))))); if (FAILED(hr)) return hr;
  1986.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  1987.     if (FAILED(hr))
  1988.         return hr;
  1989.     return hrMethod;
  1990.     }
  1991. HRESULT STDMETHODCALLTYPE IOPCAsyncIO2_Read_vxstub (IOPCAsyncIO2* pitf, RPC_STUB_MSG& msg)
  1992.     {
  1993.     NDRTYPES ndrtypes;
  1994.     HRESULT hr;
  1995.     HRESULT hrMethod;
  1996.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  1997.     DWORD dwCount;
  1998.     hr=widlUnmarshal (&dwCount, pus, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  1999.     OPCHANDLE* phServer;
  2000.     hr=widlUnmarshal (&phServer, pus, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.ulong_t (), NDR_SIZEOF(OPCHANDLE)))); if (FAILED(hr)) return hr;
  2001.     DWORD dwTransactionID;
  2002.     hr=widlUnmarshal (&dwTransactionID, pus, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  2003.     DWORD pdwCancelID_tmp;
  2004.     DWORD* pdwCancelID = &pdwCancelID_tmp;
  2005.     HRESULT* ppErrors_tmp;
  2006.     HRESULT** ppErrors = &ppErrors_tmp;
  2007.     hrMethod = pitf->Read (dwCount, phServer, dwTransactionID, pdwCancelID, ppErrors);
  2008.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  2009.     hr=widlMarshal (&pdwCancelID, pms, ndrtypes.refptr_t(ndrtypes.ulong_t ())); if (FAILED(hr)) return hr;
  2010.     hr=widlMarshal (&ppErrors, pms, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.carray_t(ndrtypes.long_t (), NDR_SIZEOF(HRESULT), dwCount)))); if (FAILED(hr)) return hr;
  2011.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  2012.     if (FAILED(hr))
  2013.         return hr;
  2014.     if ((*ppErrors)) {CoTaskMemFree ((*ppErrors));};
  2015.     return S_OK;
  2016.     }
  2017. HRESULT STDMETHODCALLTYPE IOPCAsyncIO2_Write_vxproxy (IOPCAsyncIO2* pThis, DWORD dwCount, OPCHANDLE* phServer, VARIANT* pItemValues, DWORD dwTransactionID, DWORD* pdwCancelID, HRESULT** ppErrors)
  2018.     {
  2019.     RPC_PROXY_MSG msg (IID_IOPCAsyncIO2, RpcMode::OBJECT, 4, pThis);
  2020.     NDRTYPES ndrtypes;
  2021.     HRESULT hrMethod;
  2022.     HRESULT hr;
  2023.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  2024.     hr=widlMarshal (&dwCount, pms, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  2025.     hr=widlMarshal (&phServer, pms, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.ulong_t (), NDR_SIZEOF(OPCHANDLE), dwCount))); if (FAILED(hr)) return hr;
  2026.     hr=widlMarshal (&pItemValues, pms, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.variant_t (), NDR_SIZEOF(VARIANT), dwCount))); if (FAILED(hr)) return hr;
  2027.     hr=widlMarshal (&dwTransactionID, pms, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  2028.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  2029.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  2030.     hr=widlUnmarshal (&pdwCancelID, pus, ndrtypes.refptr_t(ndrtypes.ulong_t ())); if (FAILED(hr)) return hr;
  2031.     hr=widlUnmarshal (&ppErrors, pus, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.carray_t(ndrtypes.long_t (), NDR_SIZEOF(HRESULT))))); if (FAILED(hr)) return hr;
  2032.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  2033.     if (FAILED(hr))
  2034.         return hr;
  2035.     return hrMethod;
  2036.     }
  2037. HRESULT STDMETHODCALLTYPE IOPCAsyncIO2_Write_vxstub (IOPCAsyncIO2* pitf, RPC_STUB_MSG& msg)
  2038.     {
  2039.     NDRTYPES ndrtypes;
  2040.     HRESULT hr;
  2041.     HRESULT hrMethod;
  2042.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  2043.     DWORD dwCount;
  2044.     hr=widlUnmarshal (&dwCount, pus, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  2045.     OPCHANDLE* phServer;
  2046.     hr=widlUnmarshal (&phServer, pus, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.ulong_t (), NDR_SIZEOF(OPCHANDLE)))); if (FAILED(hr)) return hr;
  2047.     VARIANT* pItemValues;
  2048.     hr=widlUnmarshal (&pItemValues, pus, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.variant_t (), NDR_SIZEOF(VARIANT)))); if (FAILED(hr)) return hr;
  2049.     DWORD dwTransactionID;
  2050.     hr=widlUnmarshal (&dwTransactionID, pus, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  2051.     DWORD pdwCancelID_tmp;
  2052.     DWORD* pdwCancelID = &pdwCancelID_tmp;
  2053.     HRESULT* ppErrors_tmp;
  2054.     HRESULT** ppErrors = &ppErrors_tmp;
  2055.     hrMethod = pitf->Write (dwCount, phServer, pItemValues, dwTransactionID, pdwCancelID, ppErrors);
  2056.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  2057.     hr=widlMarshal (&pdwCancelID, pms, ndrtypes.refptr_t(ndrtypes.ulong_t ())); if (FAILED(hr)) return hr;
  2058.     hr=widlMarshal (&ppErrors, pms, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.carray_t(ndrtypes.long_t (), NDR_SIZEOF(HRESULT), dwCount)))); if (FAILED(hr)) return hr;
  2059.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  2060.     if (FAILED(hr))
  2061.         return hr;
  2062.     if ((*ppErrors)) {CoTaskMemFree ((*ppErrors));};
  2063.     return S_OK;
  2064.     }
  2065. HRESULT STDMETHODCALLTYPE IOPCAsyncIO2_Refresh2_vxproxy (IOPCAsyncIO2* pThis, OPCDATASOURCE dwSource, DWORD dwTransactionID, DWORD* pdwCancelID)
  2066.     {
  2067.     RPC_PROXY_MSG msg (IID_IOPCAsyncIO2, RpcMode::OBJECT, 5, pThis);
  2068.     NDRTYPES ndrtypes;
  2069.     HRESULT hrMethod;
  2070.     HRESULT hr;
  2071.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  2072.     hr=widlMarshal (&dwSource, pms, ndrtypes.enum_t ()); if (FAILED(hr)) return hr;
  2073.     hr=widlMarshal (&dwTransactionID, pms, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  2074.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  2075.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  2076.     hr=widlUnmarshal (&pdwCancelID, pus, ndrtypes.refptr_t(ndrtypes.ulong_t ())); if (FAILED(hr)) return hr;
  2077.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  2078.     if (FAILED(hr))
  2079.         return hr;
  2080.     return hrMethod;
  2081.     }
  2082. HRESULT STDMETHODCALLTYPE IOPCAsyncIO2_Refresh2_vxstub (IOPCAsyncIO2* pitf, RPC_STUB_MSG& msg)
  2083.     {
  2084.     NDRTYPES ndrtypes;
  2085.     HRESULT hr;
  2086.     HRESULT hrMethod;
  2087.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  2088.     OPCDATASOURCE dwSource;
  2089.     hr=widlUnmarshal (&dwSource, pus, ndrtypes.enum_t ()); if (FAILED(hr)) return hr;
  2090.     DWORD dwTransactionID;
  2091.     hr=widlUnmarshal (&dwTransactionID, pus, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  2092.     DWORD pdwCancelID_tmp;
  2093.     DWORD* pdwCancelID = &pdwCancelID_tmp;
  2094.     hrMethod = pitf->Refresh2 (dwSource, dwTransactionID, pdwCancelID);
  2095.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  2096.     hr=widlMarshal (&pdwCancelID, pms, ndrtypes.refptr_t(ndrtypes.ulong_t ())); if (FAILED(hr)) return hr;
  2097.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  2098.     if (FAILED(hr))
  2099.         return hr;
  2100.     return S_OK;
  2101.     }
  2102. HRESULT STDMETHODCALLTYPE IOPCAsyncIO2_Cancel2_vxproxy (IOPCAsyncIO2* pThis, DWORD dwCancelID)
  2103.     {
  2104.     RPC_PROXY_MSG msg (IID_IOPCAsyncIO2, RpcMode::OBJECT, 6, pThis);
  2105.     NDRTYPES ndrtypes;
  2106.     HRESULT hrMethod;
  2107.     HRESULT hr;
  2108.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  2109.     hr=widlMarshal (&dwCancelID, pms, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  2110.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  2111.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  2112.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  2113.     if (FAILED(hr))
  2114.         return hr;
  2115.     return hrMethod;
  2116.     }
  2117. HRESULT STDMETHODCALLTYPE IOPCAsyncIO2_Cancel2_vxstub (IOPCAsyncIO2* pitf, RPC_STUB_MSG& msg)
  2118.     {
  2119.     NDRTYPES ndrtypes;
  2120.     HRESULT hr;
  2121.     HRESULT hrMethod;
  2122.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  2123.     DWORD dwCancelID;
  2124.     hr=widlUnmarshal (&dwCancelID, pus, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  2125.     hrMethod = pitf->Cancel2 (dwCancelID);
  2126.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  2127.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  2128.     if (FAILED(hr))
  2129.         return hr;
  2130.     return S_OK;
  2131.     }
  2132. HRESULT STDMETHODCALLTYPE IOPCAsyncIO2_SetEnable_vxproxy (IOPCAsyncIO2* pThis, BOOL bEnable)
  2133.     {
  2134.     RPC_PROXY_MSG msg (IID_IOPCAsyncIO2, RpcMode::OBJECT, 7, pThis);
  2135.     NDRTYPES ndrtypes;
  2136.     HRESULT hrMethod;
  2137.     HRESULT hr;
  2138.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  2139.     hr=widlMarshal (&bEnable, pms, ndrtypes.int_t ()); if (FAILED(hr)) return hr;
  2140.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  2141.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  2142.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  2143.     if (FAILED(hr))
  2144.         return hr;
  2145.     return hrMethod;
  2146.     }
  2147. HRESULT STDMETHODCALLTYPE IOPCAsyncIO2_SetEnable_vxstub (IOPCAsyncIO2* pitf, RPC_STUB_MSG& msg)
  2148.     {
  2149.     NDRTYPES ndrtypes;
  2150.     HRESULT hr;
  2151.     HRESULT hrMethod;
  2152.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  2153.     BOOL bEnable;
  2154.     hr=widlUnmarshal (&bEnable, pus, ndrtypes.int_t ()); if (FAILED(hr)) return hr;
  2155.     hrMethod = pitf->SetEnable (bEnable);
  2156.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  2157.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  2158.     if (FAILED(hr))
  2159.         return hr;
  2160.     return S_OK;
  2161.     }
  2162. HRESULT STDMETHODCALLTYPE IOPCAsyncIO2_GetEnable_vxproxy (IOPCAsyncIO2* pThis, BOOL* pbEnable)
  2163.     {
  2164.     RPC_PROXY_MSG msg (IID_IOPCAsyncIO2, RpcMode::OBJECT, 8, pThis);
  2165.     NDRTYPES ndrtypes;
  2166.     HRESULT hrMethod;
  2167.     HRESULT hr;
  2168.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  2169.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  2170.     hr=widlUnmarshal (&pbEnable, pus, ndrtypes.refptr_t(ndrtypes.int_t ())); if (FAILED(hr)) return hr;
  2171.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  2172.     if (FAILED(hr))
  2173.         return hr;
  2174.     return hrMethod;
  2175.     }
  2176. HRESULT STDMETHODCALLTYPE IOPCAsyncIO2_GetEnable_vxstub (IOPCAsyncIO2* pitf, RPC_STUB_MSG& msg)
  2177.     {
  2178.     NDRTYPES ndrtypes;
  2179.     HRESULT hr;
  2180.     HRESULT hrMethod;
  2181.     BOOL pbEnable_tmp;
  2182.     BOOL* pbEnable = &pbEnable_tmp;
  2183.     hrMethod = pitf->GetEnable (pbEnable);
  2184.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  2185.     hr=widlMarshal (&pbEnable, pms, ndrtypes.refptr_t(ndrtypes.int_t ())); if (FAILED(hr)) return hr;
  2186.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  2187.     if (FAILED(hr))
  2188.         return hr;
  2189.     return S_OK;
  2190.     }
  2191. COM_VTABLE(IOPCAsyncIO2) IOPCAsyncIO2_vxproxy_vtbl = {
  2192.     COM_VTBL_HEADER
  2193.     COM_VTBL_METHOD(&IUnknown_QueryInterface_vxproxy),
  2194.     COM_VTBL_METHOD(&IUnknown_AddRef_vxproxy),
  2195.     COM_VTBL_METHOD(&IUnknown_Release_vxproxy),
  2196.     COM_VTBL_METHOD(&IOPCAsyncIO2_Read_vxproxy),
  2197.     COM_VTBL_METHOD(&IOPCAsyncIO2_Write_vxproxy),
  2198.     COM_VTBL_METHOD(&IOPCAsyncIO2_Refresh2_vxproxy),
  2199.     COM_VTBL_METHOD(&IOPCAsyncIO2_Cancel2_vxproxy),
  2200.     COM_VTBL_METHOD(&IOPCAsyncIO2_SetEnable_vxproxy),
  2201.     COM_VTBL_METHOD(&IOPCAsyncIO2_GetEnable_vxproxy),
  2202.     };
  2203. const PFN_ORPC_STUB stub_functbl_IOPCAsyncIO2 [] =
  2204.     {
  2205.     0,0,0,
  2206.     (PFN_ORPC_STUB) IOPCAsyncIO2_Read_vxstub,
  2207.     (PFN_ORPC_STUB) IOPCAsyncIO2_Write_vxstub,
  2208.     (PFN_ORPC_STUB) IOPCAsyncIO2_Refresh2_vxstub,
  2209.     (PFN_ORPC_STUB) IOPCAsyncIO2_Cancel2_vxstub,
  2210.     (PFN_ORPC_STUB) IOPCAsyncIO2_SetEnable_vxstub,
  2211.     (PFN_ORPC_STUB) IOPCAsyncIO2_GetEnable_vxstub,
  2212.     };
  2213. EXTERN_C const VXDCOM_STUB_DISPTBL IOPCAsyncIO2_vxstub_disptbl =
  2214.     {
  2215.     9,
  2216.     stub_functbl_IOPCAsyncIO2
  2217.     };
  2218. VXDCOM_PS_AUTOREGISTER(IOPCAsyncIO2);
  2219. HRESULT STDMETHODCALLTYPE IOPCItemProperties_QueryAvailableProperties_vxproxy (IOPCItemProperties* pThis, LPWSTR szItemID, DWORD* pdwCount, DWORD** ppPropertyIDs, LPWSTR** ppDescriptions, VARTYPE** ppvtDataTypes)
  2220.     {
  2221.     RPC_PROXY_MSG msg (IID_IOPCItemProperties, RpcMode::OBJECT, 3, pThis);
  2222.     NDRTYPES ndrtypes;
  2223.     HRESULT hrMethod;
  2224.     HRESULT hr;
  2225.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  2226.     hr=widlMarshal (&szItemID, pms, ndrtypes.refptr_t(ndrtypes.wstring_t ())); if (FAILED(hr)) return hr;
  2227.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  2228.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  2229.     hr=widlUnmarshal (&pdwCount, pus, ndrtypes.refptr_t(ndrtypes.ulong_t ())); if (FAILED(hr)) return hr;
  2230.     hr=widlUnmarshal (&ppPropertyIDs, pus, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.carray_t(ndrtypes.ulong_t (), NDR_SIZEOF(DWORD))))); if (FAILED(hr)) return hr;
  2231.     hr=widlUnmarshal (&ppDescriptions, pus, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.carray_t(ndrtypes.pointer_t(ndrtypes.wstring_t ()), NDR_SIZEOF(LPWSTR))))); if (FAILED(hr)) return hr;
  2232.     hr=widlUnmarshal (&ppvtDataTypes, pus, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.carray_t(ndrtypes.ushort_t (), NDR_SIZEOF(VARTYPE))))); if (FAILED(hr)) return hr;
  2233.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  2234.     if (FAILED(hr))
  2235.         return hr;
  2236.     return hrMethod;
  2237.     }
  2238. HRESULT STDMETHODCALLTYPE IOPCItemProperties_QueryAvailableProperties_vxstub (IOPCItemProperties* pitf, RPC_STUB_MSG& msg)
  2239.     {
  2240.     NDRTYPES ndrtypes;
  2241.     HRESULT hr;
  2242.     HRESULT hrMethod;
  2243.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  2244.     LPWSTR szItemID;
  2245.     hr=widlUnmarshal (&szItemID, pus, ndrtypes.refptr_t(ndrtypes.wstring_t ())); if (FAILED(hr)) return hr;
  2246.     DWORD pdwCount_tmp;
  2247.     DWORD* pdwCount = &pdwCount_tmp;
  2248.     DWORD* ppPropertyIDs_tmp;
  2249.     DWORD** ppPropertyIDs = &ppPropertyIDs_tmp;
  2250.     LPWSTR* ppDescriptions_tmp;
  2251.     LPWSTR** ppDescriptions = &ppDescriptions_tmp;
  2252.     VARTYPE* ppvtDataTypes_tmp;
  2253.     VARTYPE** ppvtDataTypes = &ppvtDataTypes_tmp;
  2254.     hrMethod = pitf->QueryAvailableProperties (szItemID, pdwCount, ppPropertyIDs, ppDescriptions, ppvtDataTypes);
  2255.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  2256.     hr=widlMarshal (&pdwCount, pms, ndrtypes.refptr_t(ndrtypes.ulong_t ())); if (FAILED(hr)) return hr;
  2257.     hr=widlMarshal (&ppPropertyIDs, pms, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.carray_t(ndrtypes.ulong_t (), NDR_SIZEOF(DWORD), *pdwCount)))); if (FAILED(hr)) return hr;
  2258.     hr=widlMarshal (&ppDescriptions, pms, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.carray_t(ndrtypes.pointer_t(ndrtypes.wstring_t ()), NDR_SIZEOF(LPWSTR), *pdwCount)))); if (FAILED(hr)) return hr;
  2259.     hr=widlMarshal (&ppvtDataTypes, pms, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.carray_t(ndrtypes.ushort_t (), NDR_SIZEOF(VARTYPE), *pdwCount)))); if (FAILED(hr)) return hr;
  2260.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  2261.     if (FAILED(hr))
  2262.         return hr;
  2263.     if ((*ppPropertyIDs)) {CoTaskMemFree ((*ppPropertyIDs));}if ((*ppDescriptions)) {{for (DWORD __ix=0; __ix < *pdwCount; ++__ix) {if (((*ppDescriptions)[__ix])) {CoTaskMemFree (((*ppDescriptions)[__ix]));}}}CoTaskMemFree ((*ppDescriptions));}if ((*ppvtDataTypes)) {CoTaskMemFree ((*ppvtDataTypes));};
  2264.     return S_OK;
  2265.     }
  2266. HRESULT STDMETHODCALLTYPE IOPCItemProperties_GetItemProperties_vxproxy (IOPCItemProperties* pThis, LPWSTR szItemID, DWORD dwCount, DWORD* pdwPropertyIDs, VARIANT** ppvData, HRESULT** ppErrors)
  2267.     {
  2268.     RPC_PROXY_MSG msg (IID_IOPCItemProperties, RpcMode::OBJECT, 4, pThis);
  2269.     NDRTYPES ndrtypes;
  2270.     HRESULT hrMethod;
  2271.     HRESULT hr;
  2272.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  2273.     hr=widlMarshal (&szItemID, pms, ndrtypes.refptr_t(ndrtypes.wstring_t ())); if (FAILED(hr)) return hr;
  2274.     hr=widlMarshal (&dwCount, pms, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  2275.     hr=widlMarshal (&pdwPropertyIDs, pms, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.ulong_t (), NDR_SIZEOF(DWORD), dwCount))); if (FAILED(hr)) return hr;
  2276.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  2277.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  2278.     hr=widlUnmarshal (&ppvData, pus, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.carray_t(ndrtypes.variant_t (), NDR_SIZEOF(VARIANT))))); if (FAILED(hr)) return hr;
  2279.     hr=widlUnmarshal (&ppErrors, pus, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.carray_t(ndrtypes.long_t (), NDR_SIZEOF(HRESULT))))); if (FAILED(hr)) return hr;
  2280.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  2281.     if (FAILED(hr))
  2282.         return hr;
  2283.     return hrMethod;
  2284.     }
  2285. HRESULT STDMETHODCALLTYPE IOPCItemProperties_GetItemProperties_vxstub (IOPCItemProperties* pitf, RPC_STUB_MSG& msg)
  2286.     {
  2287.     NDRTYPES ndrtypes;
  2288.     HRESULT hr;
  2289.     HRESULT hrMethod;
  2290.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  2291.     LPWSTR szItemID;
  2292.     hr=widlUnmarshal (&szItemID, pus, ndrtypes.refptr_t(ndrtypes.wstring_t ())); if (FAILED(hr)) return hr;
  2293.     DWORD dwCount;
  2294.     hr=widlUnmarshal (&dwCount, pus, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  2295.     DWORD* pdwPropertyIDs;
  2296.     hr=widlUnmarshal (&pdwPropertyIDs, pus, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.ulong_t (), NDR_SIZEOF(DWORD)))); if (FAILED(hr)) return hr;
  2297.     VARIANT* ppvData_tmp;
  2298.     VARIANT** ppvData = &ppvData_tmp;
  2299.     HRESULT* ppErrors_tmp;
  2300.     HRESULT** ppErrors = &ppErrors_tmp;
  2301.     hrMethod = pitf->GetItemProperties (szItemID, dwCount, pdwPropertyIDs, ppvData, ppErrors);
  2302.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  2303.     hr=widlMarshal (&ppvData, pms, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.carray_t(ndrtypes.variant_t (), NDR_SIZEOF(VARIANT), dwCount)))); if (FAILED(hr)) return hr;
  2304.     hr=widlMarshal (&ppErrors, pms, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.carray_t(ndrtypes.long_t (), NDR_SIZEOF(HRESULT), dwCount)))); if (FAILED(hr)) return hr;
  2305.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  2306.     if (FAILED(hr))
  2307.         return hr;
  2308.     if ((*ppvData)) {{for (DWORD __ix=0; __ix < dwCount; ++__ix) {::VariantClear (&(((*ppvData)[__ix]))); }}CoTaskMemFree ((*ppvData));}if ((*ppErrors)) {CoTaskMemFree ((*ppErrors));};
  2309.     return S_OK;
  2310.     }
  2311. HRESULT STDMETHODCALLTYPE IOPCItemProperties_LookupItemIDs_vxproxy (IOPCItemProperties* pThis, LPWSTR szItemID, DWORD dwCount, DWORD* pdwPropertyIDs, LPWSTR** ppszNewItemIDs, HRESULT** ppErrors)
  2312.     {
  2313.     RPC_PROXY_MSG msg (IID_IOPCItemProperties, RpcMode::OBJECT, 5, pThis);
  2314.     NDRTYPES ndrtypes;
  2315.     HRESULT hrMethod;
  2316.     HRESULT hr;
  2317.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  2318.     hr=widlMarshal (&szItemID, pms, ndrtypes.refptr_t(ndrtypes.wstring_t ())); if (FAILED(hr)) return hr;
  2319.     hr=widlMarshal (&dwCount, pms, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  2320.     hr=widlMarshal (&pdwPropertyIDs, pms, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.ulong_t (), NDR_SIZEOF(DWORD), dwCount))); if (FAILED(hr)) return hr;
  2321.     hr = msg.SendReceive (); if (FAILED (hr)) return hr;
  2322.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  2323.     hr=widlUnmarshal (&ppszNewItemIDs, pus, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.carray_t(ndrtypes.pointer_t(ndrtypes.wstring_t ()), NDR_SIZEOF(LPWSTR))))); if (FAILED(hr)) return hr;
  2324.     hr=widlUnmarshal (&ppErrors, pus, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.carray_t(ndrtypes.long_t (), NDR_SIZEOF(HRESULT))))); if (FAILED(hr)) return hr;
  2325.     hr = widlUnmarshal (&hrMethod, pus, ndrtypes.hresult_t());
  2326.     if (FAILED(hr))
  2327.         return hr;
  2328.     return hrMethod;
  2329.     }
  2330. HRESULT STDMETHODCALLTYPE IOPCItemProperties_LookupItemIDs_vxstub (IOPCItemProperties* pitf, RPC_STUB_MSG& msg)
  2331.     {
  2332.     NDRTYPES ndrtypes;
  2333.     HRESULT hr;
  2334.     HRESULT hrMethod;
  2335.     NdrUnmarshalStream* pus = msg.unmarshalStreamGet ();
  2336.     LPWSTR szItemID;
  2337.     hr=widlUnmarshal (&szItemID, pus, ndrtypes.refptr_t(ndrtypes.wstring_t ())); if (FAILED(hr)) return hr;
  2338.     DWORD dwCount;
  2339.     hr=widlUnmarshal (&dwCount, pus, ndrtypes.ulong_t ()); if (FAILED(hr)) return hr;
  2340.     DWORD* pdwPropertyIDs;
  2341.     hr=widlUnmarshal (&pdwPropertyIDs, pus, ndrtypes.refptr_t(ndrtypes.carray_t(ndrtypes.ulong_t (), NDR_SIZEOF(DWORD)))); if (FAILED(hr)) return hr;
  2342.     LPWSTR* ppszNewItemIDs_tmp;
  2343.     LPWSTR** ppszNewItemIDs = &ppszNewItemIDs_tmp;
  2344.     HRESULT* ppErrors_tmp;
  2345.     HRESULT** ppErrors = &ppErrors_tmp;
  2346.     hrMethod = pitf->LookupItemIDs (szItemID, dwCount, pdwPropertyIDs, ppszNewItemIDs, ppErrors);
  2347.     NdrMarshalStream* pms = msg.marshalStreamGet ();
  2348.     hr=widlMarshal (&ppszNewItemIDs, pms, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.carray_t(ndrtypes.pointer_t(ndrtypes.wstring_t ()), NDR_SIZEOF(LPWSTR), dwCount)))); if (FAILED(hr)) return hr;
  2349.     hr=widlMarshal (&ppErrors, pms, ndrtypes.refptr_t(ndrtypes.pointer_t(ndrtypes.carray_t(ndrtypes.long_t (), NDR_SIZEOF(HRESULT), dwCount)))); if (FAILED(hr)) return hr;
  2350.     hr = widlMarshal (&hrMethod, pms, ndrtypes.hresult_t());
  2351.     if (FAILED(hr))
  2352.         return hr;
  2353.     if ((*ppszNewItemIDs)) {{for (DWORD __ix=0; __ix < dwCount; ++__ix) {if (((*ppszNewItemIDs)[__ix])) {CoTaskMemFree (((*ppszNewItemIDs)[__ix]));}}}CoTaskMemFree ((*ppszNewItemIDs));}if ((*ppErrors)) {CoTaskMemFree ((*ppErrors));};
  2354.     return S_OK;
  2355.     }
  2356. COM_VTABLE(IOPCItemProperties) IOPCItemProperties_vxproxy_vtbl = {
  2357.     COM_VTBL_HEADER
  2358.     COM_VTBL_METHOD(&IUnknown_QueryInterface_vxproxy),
  2359.     COM_VTBL_METHOD(&IUnknown_AddRef_vxproxy),
  2360.     COM_VTBL_METHOD(&IUnknown_Release_vxproxy),
  2361.     COM_VTBL_METHOD(&IOPCItemProperties_QueryAvailableProperties_vxproxy),
  2362.     COM_VTBL_METHOD(&IOPCItemProperties_GetItemProperties_vxproxy),
  2363.     COM_VTBL_METHOD(&IOPCItemProperties_LookupItemIDs_vxproxy),
  2364.     };
  2365. const PFN_ORPC_STUB stub_functbl_IOPCItemProperties [] =
  2366.     {
  2367.     0,0,0,
  2368.     (PFN_ORPC_STUB) IOPCItemProperties_QueryAvailableProperties_vxstub,
  2369.     (PFN_ORPC_STUB) IOPCItemProperties_GetItemProperties_vxstub,
  2370.     (PFN_ORPC_STUB) IOPCItemProperties_LookupItemIDs_vxstub,
  2371.     };
  2372. EXTERN_C const VXDCOM_STUB_DISPTBL IOPCItemProperties_vxstub_disptbl =
  2373.     {
  2374.     6,
  2375.     stub_functbl_IOPCItemProperties
  2376.     };
  2377. VXDCOM_PS_AUTOREGISTER(IOPCItemProperties);