99 lines
3.6 KiB
Plaintext
99 lines
3.6 KiB
Plaintext
//+---------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
// Copyright (C) Microsoft Corporation, 1995-1999.
|
|
//
|
|
// File: servprov.idl
|
|
//
|
|
// Contents: IServiceProvider description
|
|
//
|
|
// Classes:
|
|
//
|
|
// Functions:
|
|
//
|
|
// History: 02-15-95 JoePe Created
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
cpp_quote("//=--------------------------------------------------------------------------=")
|
|
cpp_quote("// ServProv.h")
|
|
cpp_quote("//=--------------------------------------------------------------------------=")
|
|
cpp_quote("// (C) Copyright 1995-1999 Microsoft Corporation. All Rights Reserved.")
|
|
cpp_quote("//")
|
|
cpp_quote("// THIS CODE AND INFORMATION IS PROVIDED \"AS IS\" WITHOUT WARRANTY OF")
|
|
cpp_quote("// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO")
|
|
cpp_quote("// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A")
|
|
cpp_quote("// PARTICULAR PURPOSE.")
|
|
cpp_quote("//=--------------------------------------------------------------------------=")
|
|
cpp_quote("")
|
|
cpp_quote("#pragma comment(lib,\"uuid.lib\")")
|
|
cpp_quote("")
|
|
cpp_quote("//---------------------------------------------------------------------------=")
|
|
cpp_quote("// IServiceProvider Interfaces.")
|
|
cpp_quote("")
|
|
|
|
import "objidl.idl";
|
|
//import "oleidl.idl";
|
|
|
|
interface IServiceProvider;
|
|
|
|
[
|
|
object,
|
|
uuid(6d5140c1-7436-11ce-8034-00aa006009fa),
|
|
pointer_default(unique)
|
|
]
|
|
|
|
|
|
interface IServiceProvider : IUnknown
|
|
{
|
|
typedef [unique] IServiceProvider *LPSERVICEPROVIDER;
|
|
|
|
cpp_quote("#if (_MSC_VER >= 1100) && defined(__cplusplus) && !defined(CINTERFACE)")
|
|
cpp_quote(" EXTERN_C const IID IID_IServiceProvider;")
|
|
cpp_quote(" extern \"C++\"")
|
|
cpp_quote(" {")
|
|
cpp_quote(" MIDL_INTERFACE(\"6d5140c1-7436-11ce-8034-00aa006009fa\")")
|
|
cpp_quote(" IServiceProvider : public IUnknown")
|
|
cpp_quote(" {")
|
|
cpp_quote(" public:")
|
|
cpp_quote(" virtual /* [local] */ HRESULT STDMETHODCALLTYPE QueryService( ")
|
|
cpp_quote(" /* [in] */ REFGUID guidService,")
|
|
cpp_quote(" /* [in] */ REFIID riid,")
|
|
cpp_quote(" /* [out] */ void __RPC_FAR *__RPC_FAR *ppvObject) = 0;")
|
|
cpp_quote(" ")
|
|
cpp_quote(" template <class Q>")
|
|
cpp_quote(" HRESULT STDMETHODCALLTYPE QueryService(REFGUID guidService, Q** pp)")
|
|
cpp_quote(" {")
|
|
cpp_quote(" return QueryService(guidService, __uuidof(Q), (void **)pp);")
|
|
cpp_quote(" }")
|
|
cpp_quote(" };")
|
|
cpp_quote(" }")
|
|
cpp_quote("")
|
|
cpp_quote(" /* [call_as] */ HRESULT STDMETHODCALLTYPE IServiceProvider_RemoteQueryService_Proxy( ")
|
|
cpp_quote(" IServiceProvider __RPC_FAR * This,")
|
|
cpp_quote(" /* [in] */ REFGUID guidService,")
|
|
cpp_quote(" /* [in] */ REFIID riid,")
|
|
cpp_quote(" /* [iid_is][out] */ IUnknown __RPC_FAR *__RPC_FAR *ppvObject);")
|
|
cpp_quote("")
|
|
cpp_quote(" void __RPC_STUB IServiceProvider_RemoteQueryService_Stub(")
|
|
cpp_quote(" IRpcStubBuffer *This,")
|
|
cpp_quote(" IRpcChannelBuffer *_pRpcChannelBuffer,")
|
|
cpp_quote(" PRPC_MESSAGE _pRpcMessage,")
|
|
cpp_quote(" DWORD *_pdwStubPhase);")
|
|
cpp_quote("")
|
|
cpp_quote("#else // VC6 Hack")
|
|
[local]
|
|
HRESULT QueryService(
|
|
[in] REFGUID guidService,
|
|
[in] REFIID riid,
|
|
[out] void ** ppvObject);
|
|
|
|
[call_as(QueryService)]
|
|
HRESULT RemoteQueryService(
|
|
[in] REFGUID guidService,
|
|
[in] REFIID riid,
|
|
[out, iid_is(riid)] IUnknown ** ppvObject);
|
|
}
|
|
cpp_quote("#endif // VC6 Hack")
|
|
|