home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / sdk / com / inole2 / chap09 / idescrip / idescrip_p.c < prev    next >
C/C++ Source or Header  |  1998-03-30  |  10KB  |  354 lines

  1. /* this ALWAYS GENERATED file contains the proxy stub code */
  2.  
  3.  
  4. /* File created by MIDL compiler version 3.03.0110 */
  5. /* at Mon Mar 30 03:49:41 1998
  6.  */
  7. /* Compiler settings for idescrip.idl:
  8.     Os (OptLev=s), W1, Zp8, env=Win32, ms_ext, app_config, c_ext
  9.     error checks: none
  10. */
  11. //@@MIDL_FILE_HEADING(  )
  12.  
  13.  
  14. /* verify that the <rpcproxy.h> version is high enough to compile this file*/
  15. #ifndef __REDQ_RPCPROXY_H_VERSION__
  16. #define __REQUIRED_RPCPROXY_H_VERSION__ 440
  17. #endif
  18.  
  19.  
  20. #include "rpcproxy.h"
  21. #ifndef __RPCPROXY_H_VERSION__
  22. #error this stub requires an updated version of <rpcproxy.h>
  23. #endif // __RPCPROXY_H_VERSION__
  24.  
  25.  
  26. #include "idescrip.h"
  27.  
  28. #define TYPE_FORMAT_STRING_SIZE   11                                
  29. #define PROC_FORMAT_STRING_SIZE   9                                 
  30.  
  31. typedef struct _MIDL_TYPE_FORMAT_STRING
  32.     {
  33.     short          Pad;
  34.     unsigned char  Format[ TYPE_FORMAT_STRING_SIZE ];
  35.     } MIDL_TYPE_FORMAT_STRING;
  36.  
  37. typedef struct _MIDL_PROC_FORMAT_STRING
  38.     {
  39.     short          Pad;
  40.     unsigned char  Format[ PROC_FORMAT_STRING_SIZE ];
  41.     } MIDL_PROC_FORMAT_STRING;
  42.  
  43.  
  44. extern const MIDL_TYPE_FORMAT_STRING __MIDL_TypeFormatString;
  45. extern const MIDL_PROC_FORMAT_STRING __MIDL_ProcFormatString;
  46.  
  47.  
  48. /* Object interface: IUnknown, ver. 0.0,
  49.    GUID={0x00000000,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
  50.  
  51.  
  52. /* Object interface: IDescription, ver. 0.0,
  53.    GUID={0x00021152,0x0000,0x0000,{0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */
  54.  
  55.  
  56. extern const MIDL_STUB_DESC Object_StubDesc;
  57.  
  58.  
  59. #pragma code_seg(".orpc")
  60.  
  61. HRESULT STDMETHODCALLTYPE IDescription_GetText_Proxy( 
  62.     IDescription __RPC_FAR * This,
  63.     /* [size_is][out][in] */ LPOLESTR pszText,
  64.     /* [in] */ ULONG cch)
  65. {
  66.  
  67.     HRESULT _RetVal;
  68.     
  69.     RPC_MESSAGE _RpcMessage;
  70.     
  71.     MIDL_STUB_MESSAGE _StubMsg;
  72.     
  73.     RpcTryExcept
  74.         {
  75.         NdrProxyInitialize(
  76.                       ( void __RPC_FAR *  )This,
  77.                       ( PRPC_MESSAGE  )&_RpcMessage,
  78.                       ( PMIDL_STUB_MESSAGE  )&_StubMsg,
  79.                       ( PMIDL_STUB_DESC  )&Object_StubDesc,
  80.                       3);
  81.         
  82.         
  83.         
  84.         RpcTryFinally
  85.             {
  86.             
  87.             _StubMsg.BufferLength = 12U + 10U;
  88.             _StubMsg.MaxCount = cch;
  89.             
  90.             NdrConformantStringBufferSize( (PMIDL_STUB_MESSAGE) &_StubMsg,
  91.                                            (unsigned char __RPC_FAR *)pszText,
  92.                                            (PFORMAT_STRING) &__MIDL_TypeFormatString.Format[4] );
  93.             
  94.             NdrProxyGetBuffer(This, &_StubMsg);
  95.             _StubMsg.MaxCount = cch;
  96.             
  97.             NdrConformantStringMarshall( (PMIDL_STUB_MESSAGE)& _StubMsg,
  98.                                          (unsigned char __RPC_FAR *)pszText,
  99.                                          (PFORMAT_STRING) &__MIDL_TypeFormatString.Format[4] );
  100.             
  101.             _StubMsg.Buffer = (unsigned char __RPC_FAR *)(((long)_StubMsg.Buffer + 3) & ~ 0x3);
  102.             *(( ULONG __RPC_FAR * )_StubMsg.Buffer)++ = cch;
  103.             
  104.             NdrProxySendReceive(This, &_StubMsg);
  105.             
  106.             if ( (_RpcMessage.DataRepresentation & 0X0000FFFFUL) != NDR_LOCAL_DATA_REPRESENTATION )
  107.                 NdrConvert( (PMIDL_STUB_MESSAGE) &_StubMsg, (PFORMAT_STRING) &__MIDL_ProcFormatString.Format[0] );
  108.             
  109.             NdrConformantStringUnmarshall( (PMIDL_STUB_MESSAGE) &_StubMsg,
  110.                                            (unsigned char __RPC_FAR * __RPC_FAR *)&pszText,
  111.                                            (PFORMAT_STRING) &__MIDL_TypeFormatString.Format[4],
  112.                                            (unsigned char)0 );
  113.             
  114.             _StubMsg.Buffer = (unsigned char __RPC_FAR *)(((long)_StubMsg.Buffer + 3) & ~ 0x3);
  115.             _RetVal = *(( HRESULT __RPC_FAR * )_StubMsg.Buffer)++;
  116.             
  117.             }
  118.         RpcFinally
  119.             {
  120.             NdrProxyFreeBuffer(This, &_StubMsg);
  121.             
  122.             }
  123.         RpcEndFinally
  124.         
  125.         }
  126.     RpcExcept(_StubMsg.dwStubPhase != PROXY_SENDRECEIVE)
  127.         {
  128.         _StubMsg.MaxCount = cch;
  129.         
  130.         NdrClearOutParameters(
  131.                          ( PMIDL_STUB_MESSAGE  )&_StubMsg,
  132.                          ( PFORMAT_STRING  )&__MIDL_TypeFormatString.Format[0],
  133.                          ( void __RPC_FAR * )pszText);
  134.         _RetVal = NdrProxyErrorHandler(RpcExceptionCode());
  135.         }
  136.     RpcEndExcept
  137.     return _RetVal;
  138. }
  139.  
  140. void __RPC_STUB IDescription_GetText_Stub(
  141.     IRpcStubBuffer *This,
  142.     IRpcChannelBuffer *_pRpcChannelBuffer,
  143.     PRPC_MESSAGE _pRpcMessage,
  144.     DWORD *_pdwStubPhase)
  145. {
  146.     HRESULT _RetVal;
  147.     MIDL_STUB_MESSAGE _StubMsg;
  148.     ULONG cch;
  149.     LPOLESTR pszText;
  150.     
  151. NdrStubInitialize(
  152.                      _pRpcMessage,
  153.                      &_StubMsg,
  154.                      &Object_StubDesc,
  155.                      _pRpcChannelBuffer);
  156.     ( LPOLESTR  )pszText = 0;
  157.     RpcTryFinally
  158.         {
  159.         if ( (_pRpcMessage->DataRepresentation & 0X0000FFFFUL) != NDR_LOCAL_DATA_REPRESENTATION )
  160.             NdrConvert( (PMIDL_STUB_MESSAGE) &_StubMsg, (PFORMAT_STRING) &__MIDL_ProcFormatString.Format[0] );
  161.         
  162.         NdrConformantStringUnmarshall( (PMIDL_STUB_MESSAGE) &_StubMsg,
  163.                                        (unsigned char __RPC_FAR * __RPC_FAR *)&pszText,
  164.                                        (PFORMAT_STRING) &__MIDL_TypeFormatString.Format[4],
  165.                                        (unsigned char)0 );
  166.         
  167.         _StubMsg.Buffer = (unsigned char __RPC_FAR *)(((long)_StubMsg.Buffer + 3) & ~ 0x3);
  168.         cch = *(( ULONG __RPC_FAR * )_StubMsg.Buffer)++;
  169.         
  170.         
  171.         *_pdwStubPhase = STUB_CALL_SERVER;
  172.         _RetVal = (((IDescription *) ((CStdStubBuffer *)This)->pvServerObject)->lpVtbl) -> GetText(
  173.            (IDescription *) ((CStdStubBuffer *)This)->pvServerObject,
  174.            pszText,
  175.            cch);
  176.         
  177.         *_pdwStubPhase = STUB_MARSHAL;
  178.         
  179.         _StubMsg.BufferLength = 12U + 10U;
  180.         _StubMsg.MaxCount = cch;
  181.         
  182.         NdrConformantStringBufferSize( (PMIDL_STUB_MESSAGE) &_StubMsg,
  183.                                        (unsigned char __RPC_FAR *)pszText,
  184.                                        (PFORMAT_STRING) &__MIDL_TypeFormatString.Format[4] );
  185.         
  186.         _StubMsg.BufferLength += 16;
  187.         
  188.         NdrStubGetBuffer(This, _pRpcChannelBuffer, &_StubMsg);
  189.         _StubMsg.MaxCount = cch;
  190.         
  191.         NdrConformantStringMarshall( (PMIDL_STUB_MESSAGE)& _StubMsg,
  192.                                      (unsigned char __RPC_FAR *)pszText,
  193.                                      (PFORMAT_STRING) &__MIDL_TypeFormatString.Format[4] );
  194.         
  195.         _StubMsg.Buffer = (unsigned char __RPC_FAR *)(((long)_StubMsg.Buffer + 3) & ~ 0x3);
  196.         *(( HRESULT __RPC_FAR * )_StubMsg.Buffer)++ = _RetVal;
  197.         
  198.         }
  199.     RpcFinally
  200.         {
  201.         _StubMsg.MaxCount = cch;
  202.         
  203.         NdrPointerFree( &_StubMsg,
  204.                         (unsigned char __RPC_FAR *)pszText,
  205.                         &__MIDL_TypeFormatString.Format[0] );
  206.         
  207.         }
  208.     RpcEndFinally
  209.     _pRpcMessage->BufferLength = 
  210.         (unsigned int)((long)_StubMsg.Buffer - (long)_pRpcMessage->Buffer);
  211.     
  212. }
  213.  
  214.  
  215. static const MIDL_STUB_DESC Object_StubDesc = 
  216.     {
  217.     0,
  218.     NdrOleAllocate,
  219.     NdrOleFree,
  220.     0,
  221.     0,
  222.     0,
  223.     0,
  224.     0,
  225.     __MIDL_TypeFormatString.Format,
  226.     0, /* -error bounds_check flag */
  227.     0x10001, /* Ndr library version */
  228.     0,
  229.     0x303006e, /* MIDL Version 3.3.110 */
  230.     0,
  231.     0,
  232.     0,  /* Reserved1 */
  233.     0,  /* Reserved2 */
  234.     0,  /* Reserved3 */
  235.     0,  /* Reserved4 */
  236.     0   /* Reserved5 */
  237.     };
  238.  
  239. const CINTERFACE_PROXY_VTABLE(4) _IDescriptionProxyVtbl = 
  240. {
  241.     &IID_IDescription,
  242.     IUnknown_QueryInterface_Proxy,
  243.     IUnknown_AddRef_Proxy,
  244.     IUnknown_Release_Proxy ,
  245.     IDescription_GetText_Proxy
  246. };
  247.  
  248.  
  249. static const PRPC_STUB_FUNCTION IDescription_table[] =
  250. {
  251.     IDescription_GetText_Stub
  252. };
  253.  
  254. const CInterfaceStubVtbl _IDescriptionStubVtbl =
  255. {
  256.     &IID_IDescription,
  257.     0,
  258.     4,
  259.     &IDescription_table[-3],
  260.     CStdStubBuffer_METHODS
  261. };
  262.  
  263. #pragma data_seg(".rdata")
  264.  
  265. #if !defined(__RPC_WIN32__)
  266. #error  Invalid build platform for this stub.
  267. #endif
  268.  
  269. static const MIDL_PROC_FORMAT_STRING __MIDL_ProcFormatString =
  270.     {
  271.         0,
  272.         {
  273.             
  274.             0x50,        /* FC_IN_OUT_PARAM */
  275. #ifndef _ALPHA_
  276.             0x1,        /* x86, MIPS & PPC Stack size = 1 */
  277. #else
  278.             0x2,        /* Alpha Stack size = 2 */
  279. #endif
  280. /*  2 */    NdrFcShort( 0x0 ),    /* Type Offset=0 */
  281. /*  4 */    0x4e,        /* FC_IN_PARAM_BASETYPE */
  282.             0x8,        /* FC_LONG */
  283. /*  6 */    0x53,        /* FC_RETURN_PARAM_BASETYPE */
  284.             0x8,        /* FC_LONG */
  285.  
  286.             0x0
  287.         }
  288.     };
  289.  
  290. static const MIDL_TYPE_FORMAT_STRING __MIDL_TypeFormatString =
  291.     {
  292.         0,
  293.         {
  294.             0x11, 0x0,    /* FC_RP */
  295. /*  2 */    NdrFcShort( 0x2 ),    /* Offset= 2 (4) */
  296. /*  4 */    
  297.             0x25,        /* FC_C_WSTRING */
  298.             0x44,        /* FC_STRING_SIZED */
  299. /*  6 */    0x29,        /* 41 */
  300.             0x0,        /*  */
  301. #ifndef _ALPHA_
  302. /*  8 */    NdrFcShort( 0x8 ),    /* x86, MIPS, PPC Stack size/offset = 8 */
  303. #else
  304.             NdrFcShort( 0x10 ),    /* Alpha Stack size/offset = 16 */
  305. #endif
  306.  
  307.             0x0
  308.         }
  309.     };
  310.  
  311. const CInterfaceProxyVtbl * _idescrip_ProxyVtblList[] = 
  312. {
  313.     ( CInterfaceProxyVtbl *) &_IDescriptionProxyVtbl,
  314.     0
  315. };
  316.  
  317. const CInterfaceStubVtbl * _idescrip_StubVtblList[] = 
  318. {
  319.     ( CInterfaceStubVtbl *) &_IDescriptionStubVtbl,
  320.     0
  321. };
  322.  
  323. PCInterfaceName const _idescrip_InterfaceNamesList[] = 
  324. {
  325.     "IDescription",
  326.     0
  327. };
  328.  
  329.  
  330. #define _idescrip_CHECK_IID(n)    IID_GENERIC_CHECK_IID( _idescrip, pIID, n)
  331.  
  332. int __stdcall _idescrip_IID_Lookup( const IID * pIID, int * pIndex )
  333. {
  334.     
  335.     if(!_idescrip_CHECK_IID(0))
  336.         {
  337.         *pIndex = 0;
  338.         return 1;
  339.         }
  340.  
  341.     return 0;
  342. }
  343.  
  344. const ExtendedProxyFileInfo idescrip_ProxyFileInfo = 
  345. {
  346.     (PCInterfaceProxyVtblList *) & _idescrip_ProxyVtblList,
  347.     (PCInterfaceStubVtblList *) & _idescrip_StubVtblList,
  348.     (const PCInterfaceName * ) & _idescrip_InterfaceNamesList,
  349.     0, // no delegation
  350.     & _idescrip_IID_Lookup, 
  351.     1,
  352.     1
  353. };
  354.