ServProv.Idl
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:4k
源码类别:

模拟服务器

开发平台:

C/C++

  1. //+---------------------------------------------------------------------------
  2. //
  3. //  Microsoft Windows
  4. //  Copyright (C) Microsoft Corporation, 1995-1999.
  5. //
  6. //  File:       servprov.idl
  7. //
  8. //  Contents:   IServiceProvider description
  9. //
  10. //  Classes:
  11. //
  12. //  Functions:
  13. //
  14. //  History:    02-15-95        JoePe Created
  15. //
  16. //----------------------------------------------------------------------------
  17. cpp_quote("//=--------------------------------------------------------------------------=")
  18. cpp_quote("// ServProv.h")
  19. cpp_quote("//=--------------------------------------------------------------------------=")
  20. cpp_quote("// (C) Copyright 1995-1999 Microsoft Corporation.  All Rights Reserved.")
  21. cpp_quote("//")
  22. cpp_quote("// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF")
  23. cpp_quote("// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO")
  24. cpp_quote("// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A")
  25. cpp_quote("// PARTICULAR PURPOSE.")
  26. cpp_quote("//=--------------------------------------------------------------------------=")
  27. cpp_quote("")
  28. cpp_quote("#pragma comment(lib,"uuid.lib")")
  29. cpp_quote("")
  30. cpp_quote("//---------------------------------------------------------------------------=")
  31. cpp_quote("// IServiceProvider Interfaces.")
  32. cpp_quote("")
  33. import "objidl.idl";
  34. //import "oleidl.idl";
  35. interface IServiceProvider;
  36. [
  37.         object,
  38.         uuid(6d5140c1-7436-11ce-8034-00aa006009fa),
  39.         pointer_default(unique)
  40. ]
  41. interface IServiceProvider : IUnknown
  42. {
  43.     typedef [unique] IServiceProvider *LPSERVICEPROVIDER;
  44. cpp_quote("#if (_MSC_VER >= 1100) && defined(__cplusplus) && !defined(CINTERFACE)")
  45. cpp_quote("    EXTERN_C const IID IID_IServiceProvider;")
  46. cpp_quote("    extern "C++"")
  47. cpp_quote("    {")
  48. cpp_quote("        MIDL_INTERFACE("6d5140c1-7436-11ce-8034-00aa006009fa")")
  49. cpp_quote("        IServiceProvider : public IUnknown")
  50. cpp_quote("        {")
  51. cpp_quote("        public:")
  52. cpp_quote("            virtual /* [local] */ HRESULT STDMETHODCALLTYPE QueryService( ")
  53. cpp_quote("                /* [in] */ REFGUID guidService,")
  54. cpp_quote("                /* [in] */ REFIID riid,")
  55. cpp_quote("                /* [out] */ void __RPC_FAR *__RPC_FAR *ppvObject) = 0;")
  56. cpp_quote("            ")
  57. cpp_quote("            template <class Q>")
  58. cpp_quote("            HRESULT STDMETHODCALLTYPE QueryService(REFGUID guidService, Q** pp)")
  59. cpp_quote("            {")
  60. cpp_quote("                return QueryService(guidService, __uuidof(Q), (void **)pp);")
  61. cpp_quote("            }")
  62. cpp_quote("        };")
  63. cpp_quote("    }")
  64. cpp_quote("")
  65. cpp_quote("    /* [call_as] */ HRESULT STDMETHODCALLTYPE IServiceProvider_RemoteQueryService_Proxy( ")
  66. cpp_quote("        IServiceProvider __RPC_FAR * This,")
  67. cpp_quote("        /* [in] */ REFGUID guidService,")
  68. cpp_quote("        /* [in] */ REFIID riid,")
  69. cpp_quote("        /* [iid_is][out] */ IUnknown __RPC_FAR *__RPC_FAR *ppvObject);")
  70. cpp_quote("")
  71. cpp_quote("    void __RPC_STUB IServiceProvider_RemoteQueryService_Stub(")
  72. cpp_quote("        IRpcStubBuffer *This,")
  73. cpp_quote("        IRpcChannelBuffer *_pRpcChannelBuffer,")
  74. cpp_quote("        PRPC_MESSAGE _pRpcMessage,")
  75. cpp_quote("        DWORD *_pdwStubPhase);")
  76. cpp_quote("")
  77. cpp_quote("#else // VC6 Hack")
  78.     [local]
  79.     HRESULT QueryService(
  80.         [in] REFGUID guidService,
  81.         [in] REFIID riid,
  82.         [out] void ** ppvObject);
  83.     [call_as(QueryService)]
  84.     HRESULT RemoteQueryService(
  85.         [in] REFGUID guidService,
  86.         [in] REFIID riid,
  87.         [out, iid_is(riid)] IUnknown ** ppvObject);
  88. }
  89. cpp_quote("#endif // VC6 Hack")