source: trunk/src/ole32/compobj_private.h@ 7958

Last change on this file since 7958 was 7958, checked in by sandervl, 24 years ago

put back old code

File size: 3.0 KB
Line 
1#ifndef __WINE_OLE_COMPOBJ_H
2#define __WINE_OLE_COMPOBJ_H
3
4#ifdef __WIN32OS2__
5#undef inline
6#define inline
7
8#include "wine/obj_moniker.h"
9
10#endif
11
12/* All private prototype functions used by OLE will be added to this header file */
13
14#include "wtypes.h"
15
16extern HRESULT WINE_StringFromCLSID(const CLSID *id,LPSTR idstr);
17extern HRESULT create_marshalled_proxy(REFCLSID rclsid, REFIID iid, LPVOID *ppv);
18
19inline static HRESULT
20get_facbuf_for_iid(REFIID riid,IPSFactoryBuffer **facbuf) {
21 HRESULT hres;
22 CLSID pxclsid;
23
24 if ((hres = CoGetPSClsid(riid,&pxclsid)))
25 return hres;
26 return CoGetClassObject(&pxclsid,CLSCTX_INPROC_SERVER,NULL,&IID_IPSFactoryBuffer,(LPVOID*)facbuf);
27}
28
29#define PIPEPREF "\\\\.\\pipe\\"
30#define OLESTUBMGR PIPEPREF"WINE_OLE_StubMgr"
31/* Standard Marshaling definitions */
32typedef struct _wine_marshal_id {
33 DWORD processid;
34 DWORD objectid; /* unique value corresp. IUnknown of object */
35 IID iid;
36} wine_marshal_id;
37
38inline static BOOL
39MARSHAL_Compare_Mids(wine_marshal_id *mid1,wine_marshal_id *mid2) {
40 return
41 (mid1->processid == mid2->processid) &&
42 (mid1->objectid == mid2->objectid) &&
43 IsEqualIID(&(mid1->iid),&(mid2->iid))
44 ;
45}
46
47/* compare without interface compare */
48inline static BOOL
49MARSHAL_Compare_Mids_NoInterface(wine_marshal_id *mid1, wine_marshal_id *mid2) {
50 return
51 (mid1->processid == mid2->processid) &&
52 (mid1->objectid == mid2->objectid)
53 ;
54}
55
56HRESULT MARSHAL_Find_Stub_Buffer(wine_marshal_id *mid,IRpcStubBuffer **stub);
57HRESULT MARSHAL_Find_Stub_Server(wine_marshal_id *mid,LPUNKNOWN *punk);
58HRESULT MARSHAL_Register_Stub(wine_marshal_id *mid,LPUNKNOWN punk, IRpcStubBuffer *stub);
59
60HRESULT MARSHAL_GetStandardMarshalCF(LPVOID *ppv);
61
62typedef struct _wine_marshal_data {
63 DWORD dwDestContext;
64 DWORD mshlflags;
65} wine_marshal_data;
66
67
68#define REQTYPE_REQUEST 0
69typedef struct _wine_rpc_request_header {
70 DWORD reqid;
71 wine_marshal_id mid;
72 DWORD iMethod;
73 DWORD cbBuffer;
74} wine_rpc_request_header;
75
76#define REQTYPE_RESPONSE 1
77typedef struct _wine_rpc_response_header {
78 DWORD reqid;
79 DWORD cbBuffer;
80 DWORD retval;
81} wine_rpc_response_header;
82
83#define REQSTATE_START 0
84#define REQSTATE_REQ_QUEUED 1
85#define REQSTATE_REQ_WAITING_FOR_REPLY 2
86#define REQSTATE_REQ_GOT 3
87#define REQSTATE_INVOKING 4
88#define REQSTATE_RESP_QUEUED 5
89#define REQSTATE_RESP_GOT 6
90#define REQSTATE_DONE 6
91
92void STUBMGR_Start();
93
94extern HRESULT PIPE_GetNewPipeBuf(wine_marshal_id *mid, IRpcChannelBuffer **pipebuf);
95
96/* This function initialize the Running Object Table */
97HRESULT WINAPI RunningObjectTableImpl_Initialize();
98
99/* This function uninitialize the Running Object Table */
100HRESULT WINAPI RunningObjectTableImpl_UnInitialize();
101
102/* This function decomposes a String path to a String Table containing all the elements ("\" or "subDirectory" or "Directory" or "FileName") of the path */
103int WINAPI FileMonikerImpl_DecomposePath(LPCOLESTR str, LPOLESTR** stringTable);
104
105#endif /* __WINE_OLE_COMPOBJ_H */
Note: See TracBrowser for help on using the repository browser.