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

📄 oaidl_p.c

📁 这是一个开放源代码的与WINNT/WIN2K/WIN2003兼容的操作系统
💻 C
📖 第 1 页 / 共 5 页
字号:
        IEnumVARIANT_Next_Proxy ,
        IEnumVARIANT_Skip_Proxy ,
        IEnumVARIANT_Reset_Proxy ,
        IEnumVARIANT_Clone_Proxy
    }
};


static const PRPC_STUB_FUNCTION IEnumVARIANT_table[] =
{
    IEnumVARIANT_RemoteNext_Stub,
    IEnumVARIANT_Skip_Stub,
    IEnumVARIANT_Reset_Stub,
    IEnumVARIANT_Clone_Stub
};

static const CInterfaceStubVtbl _IEnumVARIANTStubVtbl =
{
    {
        &IID_IEnumVARIANT,
        0,
        7,
        &IEnumVARIANT_table[-3]
    },
    { CStdStubBuffer_METHODS }
};


/* Object interface: ITypeComp, ver. 0.0,
   GUID={0x00020403,0x0000,0x0000,{0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x46}} */


extern const MIDL_STUB_DESC Object_StubDesc;


/* [call_as] */ HRESULT STDMETHODCALLTYPE ITypeComp_RemoteBind_Proxy( 
    ITypeComp __RPC_FAR * This,
    /* [in] */ LPOLESTR szName,
    /* [in] */ ULONG lHashVal,
    /* [in] */ WORD wFlags,
    /* [out] */ ITypeInfo __RPC_FAR *__RPC_FAR *ppTInfo,
    /* [out] */ DESCKIND __RPC_FAR *pDescKind,
    /* [out] */ LPFUNCDESC __RPC_FAR *ppFuncDesc,
    /* [out] */ LPVARDESC __RPC_FAR *ppVarDesc,
    /* [out] */ ITypeComp __RPC_FAR *__RPC_FAR *ppTypeComp,
    /* [out] */ CLEANLOCALSTORAGE __RPC_FAR *pDummy)
{

    HRESULT _RetVal;
    
    RPC_MESSAGE _RpcMessage;
    
    MIDL_STUB_MESSAGE _StubMsg;
    
    if(ppTInfo)
        {
        MIDL_memset(
               ppTInfo,
               0,
               sizeof( ITypeInfo __RPC_FAR *__RPC_FAR * ));
        }
    if(ppFuncDesc)
        {
        *ppFuncDesc = 0;
        }
    if(ppVarDesc)
        {
        *ppVarDesc = 0;
        }
    if(ppTypeComp)
        {
        MIDL_memset(
               ppTypeComp,
               0,
               sizeof( ITypeComp __RPC_FAR *__RPC_FAR * ));
        }
    if(pDummy)
        {
        MIDL_memset(
               pDummy,
               0,
               sizeof( CLEANLOCALSTORAGE  ));
        }
    RpcTryExcept
        {
        NdrProxyInitialize(
                      ( void __RPC_FAR *  )This,
                      ( PRPC_MESSAGE  )&_RpcMessage,
                      ( PMIDL_STUB_MESSAGE  )&_StubMsg,
                      ( PMIDL_STUB_DESC  )&Object_StubDesc,
                      3);
        
        
        
        if(!szName)
            {
            RpcRaiseException(RPC_X_NULL_REF_POINTER);
            }
        if(!ppTInfo)
            {
            RpcRaiseException(RPC_X_NULL_REF_POINTER);
            }
        if(!pDescKind)
            {
            RpcRaiseException(RPC_X_NULL_REF_POINTER);
            }
        if(!ppFuncDesc)
            {
            RpcRaiseException(RPC_X_NULL_REF_POINTER);
            }
        if(!ppVarDesc)
            {
            RpcRaiseException(RPC_X_NULL_REF_POINTER);
            }
        if(!ppTypeComp)
            {
            RpcRaiseException(RPC_X_NULL_REF_POINTER);
            }
        if(!pDummy)
            {
            RpcRaiseException(RPC_X_NULL_REF_POINTER);
            }
        RpcTryFinally
            {
            
            _StubMsg.BufferLength = 12U + 10U + 4U;
            NdrConformantStringBufferSize( (PMIDL_STUB_MESSAGE) &_StubMsg,
                                           (unsigned char __RPC_FAR *)szName,
                                           (PFORMAT_STRING) &__MIDL_TypeFormatString.Format[1248] );
            
            NdrProxyGetBuffer(This, &_StubMsg);
            NdrConformantStringMarshall( (PMIDL_STUB_MESSAGE)& _StubMsg,
                                         (unsigned char __RPC_FAR *)szName,
                                         (PFORMAT_STRING) &__MIDL_TypeFormatString.Format[1248] );
            
            _StubMsg.Buffer = (unsigned char __RPC_FAR *)(((long)_StubMsg.Buffer + 3) & ~ 0x3);
            *( ULONG __RPC_FAR * )_StubMsg.Buffer = lHashVal;
            _StubMsg.Buffer += sizeof(ULONG);
            
            *( WORD __RPC_FAR * )_StubMsg.Buffer = wFlags;
            _StubMsg.Buffer += sizeof(WORD);
            
            NdrProxySendReceive(This, &_StubMsg);
            
            if ( (_RpcMessage.DataRepresentation & 0X0000FFFFUL) != NDR_LOCAL_DATA_REPRESENTATION )
                NdrConvert( (PMIDL_STUB_MESSAGE) &_StubMsg, (PFORMAT_STRING) &__MIDL_ProcFormatString.Format[96] );
            
            NdrPointerUnmarshall( (PMIDL_STUB_MESSAGE) &_StubMsg,
                                  (unsigned char __RPC_FAR * __RPC_FAR *)&ppTInfo,
                                  (PFORMAT_STRING) &__MIDL_TypeFormatString.Format[6],
                                  (unsigned char)0 );
            
            NdrPointerUnmarshall( (PMIDL_STUB_MESSAGE) &_StubMsg,
                                  (unsigned char __RPC_FAR * __RPC_FAR *)&pDescKind,
                                  (PFORMAT_STRING) &__MIDL_TypeFormatString.Format[1250],
                                  (unsigned char)0 );
            
            NdrPointerUnmarshall( (PMIDL_STUB_MESSAGE) &_StubMsg,
                                  (unsigned char __RPC_FAR * __RPC_FAR *)&ppFuncDesc,
                                  (PFORMAT_STRING) &__MIDL_TypeFormatString.Format[1254],
                                  (unsigned char)0 );
            
            NdrPointerUnmarshall( (PMIDL_STUB_MESSAGE) &_StubMsg,
                                  (unsigned char __RPC_FAR * __RPC_FAR *)&ppVarDesc,
                                  (PFORMAT_STRING) &__MIDL_TypeFormatString.Format[1464],
                                  (unsigned char)0 );
            
            NdrPointerUnmarshall( (PMIDL_STUB_MESSAGE) &_StubMsg,
                                  (unsigned char __RPC_FAR * __RPC_FAR *)&ppTypeComp,
                                  (PFORMAT_STRING) &__MIDL_TypeFormatString.Format[1540],
                                  (unsigned char)0 );
            
            NdrUserMarshalUnmarshall( (PMIDL_STUB_MESSAGE) &_StubMsg,
                                      (unsigned char __RPC_FAR * __RPC_FAR *)&pDummy,
                                      (PFORMAT_STRING) &__MIDL_TypeFormatString.Format[1568],
                                      (unsigned char)0 );
            
            _StubMsg.Buffer = (unsigned char __RPC_FAR *)(((long)_StubMsg.Buffer + 3) & ~ 0x3);
            _RetVal = *( HRESULT __RPC_FAR * )_StubMsg.Buffer;
            _StubMsg.Buffer += sizeof(HRESULT);
            
            }
        RpcFinally
            {
            NdrProxyFreeBuffer(This, &_StubMsg);
            
            }
        RpcEndFinally
        
        }
    RpcExcept(_StubMsg.dwStubPhase != PROXY_SENDRECEIVE)
        {
        NdrClearOutParameters(
                         ( PMIDL_STUB_MESSAGE  )&_StubMsg,
                         ( PFORMAT_STRING  )&__MIDL_TypeFormatString.Format[6],
                         ( void __RPC_FAR * )ppTInfo);
        NdrClearOutParameters(
                         ( PMIDL_STUB_MESSAGE  )&_StubMsg,
                         ( PFORMAT_STRING  )&__MIDL_TypeFormatString.Format[1250],
                         ( void __RPC_FAR * )pDescKind);
        NdrClearOutParameters(
                         ( PMIDL_STUB_MESSAGE  )&_StubMsg,
                         ( PFORMAT_STRING  )&__MIDL_TypeFormatString.Format[1254],
                         ( void __RPC_FAR * )ppFuncDesc);
        NdrClearOutParameters(
                         ( PMIDL_STUB_MESSAGE  )&_StubMsg,
                         ( PFORMAT_STRING  )&__MIDL_TypeFormatString.Format[1464],
                         ( void __RPC_FAR * )ppVarDesc);
        NdrClearOutParameters(
                         ( PMIDL_STUB_MESSAGE  )&_StubMsg,
                         ( PFORMAT_STRING  )&__MIDL_TypeFormatString.Format[1540],
                         ( void __RPC_FAR * )ppTypeComp);
        NdrClearOutParameters(
                         ( PMIDL_STUB_MESSAGE  )&_StubMsg,
                         ( PFORMAT_STRING  )&__MIDL_TypeFormatString.Format[1562],
                         ( void __RPC_FAR * )pDummy);
        _RetVal = NdrProxyErrorHandler(RpcExceptionCode());
        }
    RpcEndExcept
    return _RetVal;
}

void __RPC_STUB ITypeComp_RemoteBind_Stub(
    IRpcStubBuffer *This,
    IRpcChannelBuffer *_pRpcChannelBuffer,
    PRPC_MESSAGE _pRpcMessage,
    DWORD *_pdwStubPhase)
{
    ITypeInfo __RPC_FAR *_M15;
    DESCKIND _M16;
    LPFUNCDESC _M17;
    LPVARDESC _M18;
    ITypeComp __RPC_FAR *_M19;
    CLEANLOCALSTORAGE _M20;
    HRESULT _RetVal;
    MIDL_STUB_MESSAGE _StubMsg;
    ULONG lHashVal;
    DESCKIND __RPC_FAR *pDescKind;
    CLEANLOCALSTORAGE __RPC_FAR *pDummy;
    LPFUNCDESC __RPC_FAR *ppFuncDesc;
    ITypeInfo __RPC_FAR *__RPC_FAR *ppTInfo;
    ITypeComp __RPC_FAR *__RPC_FAR *ppTypeComp;
    LPVARDESC __RPC_FAR *ppVarDesc;
    LPOLESTR szName;
    WORD wFlags;
    
NdrStubInitialize(
                     _pRpcMessage,
                     &_StubMsg,
                     &Object_StubDesc,
                     _pRpcChannelBuffer);
    szName = 0;
    ppTInfo = 0;
    pDescKind = 0;
    ppFuncDesc = 0;
    ppVarDesc = 0;
    ppTypeComp = 0;
    pDummy = 0;
    RpcTryFinally
        {
        if ( (_pRpcMessage->DataRepresentation & 0X0000FFFFUL) != NDR_LOCAL_DATA_REPRESENTATION )
            NdrConvert( (PMIDL_STUB_MESSAGE) &_StubMsg, (PFORMAT_STRING) &__MIDL_ProcFormatString.Format[96] );
        
        NdrConformantStringUnmarshall( (PMIDL_STUB_MESSAGE) &_StubMsg,
                                       (unsigned char __RPC_FAR * __RPC_FAR *)&szName,
                                       (PFORMAT_STRING) &__MIDL_TypeFormatString.Format[1248],
                                       (unsigned char)0 );
        
        _StubMsg.Buffer = (unsigned char __RPC_FAR *)(((long)_StubMsg.Buffer + 3) & ~ 0x3);
        lHashVal = *( ULONG __RPC_FAR * )_StubMsg.Buffer;
        _StubMsg.Buffer += sizeof(ULONG);
        
        wFlags = *( WORD __RPC_FAR * )_StubMsg.Buffer;
        _StubMsg.Buffer += sizeof(WORD);
        
        ppTInfo = &_M15;
        _M15 = 0;
        pDescKind = &_M16;
        ppFuncDesc = &_M17;
        _M17 = 0;
        ppVarDesc = &_M18;
        _M18 = 0;
        ppTypeComp = &_M19;
        _M19 = 0;
        pDummy = &_M20;
        MIDL_memset(
               pDummy,
               0,
               sizeof( CLEANLOCALSTORAGE  ));
        
        *_pdwStubPhase = STUB_CALL_SERVER;
        
        
        _RetVal = ITypeComp_Bind_Stub(
                              (ITypeComp *) ((CStdStubBuffer *)This)->pvServerObject,
                              szName,
                              lHashVal,
                              wFlags,
                              ppTInfo,
                              pDescKind,
                              ppFuncDesc,
                              ppVarDesc,
                              ppTypeComp,
                              pDummy);
        
        *_pdwStubPhase = STUB_MARSHAL;
        
        _StubMsg.BufferLength = 0U + 4U + 4U + 15U + 0U + 11U + 7U;
        NdrPointerBufferSize( (PMIDL_STUB_MESSAGE) &_StubMsg,
                              (unsigned char __RPC_FAR *)ppTInfo,
                              (PFORMAT_STRING) &__MIDL_TypeFormatString.Format[6] );
        
        NdrPointerBufferSize( (PMIDL_STUB_MESSAGE) &_StubMsg,
                              (unsigned char __RPC_FAR *)ppFuncDesc,
                              (PFORMAT_STRING) &__MIDL_TypeFormatString.Format[1254] );
        
        NdrPointerBufferSize( (PMIDL_STUB_MESSAGE) &_StubMsg,
                              (unsigned char __RPC_FAR *)ppVarDesc,
                              (PFORMAT_STRING) &__MIDL_TypeFormatString.Format[1464] );
        
        NdrPointerBufferSize( (PMIDL_STUB_MESSAGE) &_StubMsg,
                              (unsigned char __RPC_FAR *)ppTypeComp,
                              (PFORMAT_STRING) &__MIDL_TypeFormatString.Format[1540] );
        
        _StubMsg.BufferLength += 16;
        
        NdrStubGetBuffer(This, _pRpcChannelBuffer, &_StubMsg);
        NdrPointerMarshall( (PMIDL_STUB_MESSAGE)& _StubMsg,
                            (unsigned char __RPC_FAR *)ppTInfo,
                            (PFORMAT_STRING) &__MIDL_TypeFormatString.Format[6] );
        
        NdrPointerMarshall( (PMIDL_STUB_MESSAGE)& _StubMsg,
                            (unsigned char __RPC_FAR *)pDescKind,
                            (PFORMAT_STRING) &__MIDL_TypeFormatString.Format[1250] );
        
        NdrPointerMarshall( (PMIDL_STUB_MESSAGE)& _StubMsg,
                            (unsigned char __RPC_FAR *)ppFuncDesc,
                            (PFORMAT_STRING) &__MIDL_TypeFormatString.Format[1254] );
        
        NdrPointerMarshall( (PMIDL_STUB_MESSAGE)& _StubMsg,
                            (unsigned char __RPC_FAR *)ppVarDesc,
                            (PFORMAT_STRING) &__MIDL_TypeFormatString.Format[1464] );
        
        NdrPointerMarshall( (PMIDL_STUB_MESSAGE)& _StubMsg,
                            (unsigned char __RPC_FAR *)ppTypeComp,
                            (PFORMAT_STRING) &__MIDL_TypeFormatString.Format[1540] );
        
        NdrUserMarshalMarshall( (PMIDL_STUB_MESSAGE)& _StubMsg,
                                (unsigned char __RPC_FAR *)pDummy,
                                (PFORMAT_STRING) &__MIDL_TypeFormatString.Format[1568] );
        
        _StubMsg.Buffer = (unsigned char __RPC_FAR *)(((long)_StubMsg.Buffer + 3) & ~ 0x3);
        *( HRESULT __RPC_FAR * )_StubMsg.Buffer = _RetVal;
        _StubMsg.Buffer += sizeof(HRESULT);
        
        }
    RpcFinally
        {
        NdrPointerFree( &_StubMsg,
                        (un

⌨️ 快捷键说明

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