|
|
1.1 root 1: // cobjps.h - definitions for writing standard proxies and stubs
2:
3: #if !defined( _COBJPS_H_ )
4: #define _COBJPS_H_
5:
6:
7: /****** IRpcChannel Interface ***********************************************/
8:
9: interface IRpcChannel : IUnknown
10: {
11: STDMETHOD(GetStream)(REFIID iid, int iMethod, BOOL fSend,
12: BOOL fNoWait, DWORD size, IStream FAR* FAR* ppIStream) = 0;
13: STDMETHOD(Call)(IStream FAR* pIStream) = 0;
14: STDMETHOD(GetDestCtx)(DWORD FAR* lpdwDestCtx, LPVOID FAR* lplpvDestCtx) = 0;
15: STDMETHOD(IsConnected)(void) = 0;
16: };
17:
18:
19: /****** IRpcProxy Interface *************************************************/
20:
21: // IRpcProxy is an interface implemented by proxy objects. A proxy object has
22: // exactly the same interfaces as the real object in addition to IRpcProxy.
23: //
24:
25: interface IRpcProxy : IUnknown
26: {
27: STDMETHOD(Connect)(IRpcChannel FAR* pRpcChannel) = 0;
28: STDMETHOD_(void, Disconnect)(void) = 0;
29: };
30:
31:
32: /****** IRpcStub Interface **************************************************/
33:
34: // IRpcStub is an interface implemented by stub objects.
35: //
36:
37: interface IRpcStub : IUnknown
38: {
39: STDMETHOD(Connect)(IUnknown FAR* pUnk) = 0;
40: STDMETHOD_(void, Disconnect)(void) = 0;
41: STDMETHOD(Invoke)(REFIID iid, int iMethod, IStream FAR* pIStream,
42: DWORD dwDestCtx, LPVOID lpvDestCtx) = 0;
43: STDMETHOD_(BOOL, IsIIDSupported)(REFIID iid) = 0;
44: #ifdef OLE2SHIP
45: STDMETHOD_(ULONG, CountRefs)(void) = 0;
46: #endif
47: };
48:
49:
50: /****** IPSFactory Interface ************************************************/
51:
52: // IPSFactory - creates proxies and stubs
53: //
54:
55: interface IPSFactory : IUnknown
56: {
57: STDMETHOD(CreateProxy)(IUnknown FAR* pUnkOuter, REFIID riid,
58: IRpcProxy FAR* FAR* ppProxy, void FAR* FAR* ppv) = 0;
59: STDMETHOD(CreateStub)(REFIID riid, IUnknown FAR* pUnkServer,
60: IRpcStub FAR* FAR* ppStub) = 0;
61: };
62:
63: #endif // _COBJPS_H_
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.