blob: 469a5ebf31cc5f98d5b49a98c7a09951f912d527 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
/*++
Copyright (c) 1995 Microsoft Corporation
Module Name:
wx86grpa.h
Abstract:
Ole interface into Wx86
Author:
29-Sep-1995 AlanWar
Revision History:
--*/
#ifdef WX86OLE
typedef HRESULT (*PFNDLLGETCLASSOBJECT)(REFCLSID, REFIID, LPVOID *);
typedef HRESULT (*PFNDLLCANUNLOADNOW)(void);
typedef PFNDLLGETCLASSOBJECT (*WX86PFNGCA)(PVOID);
typedef PFNDLLCANUNLOADNOW (*WX86PFNCUN)(PVOID);
typedef void (*WX86GPFNFCB)(PVOID);
typedef BOOL (*WX86PFNNXPSF)(IUnknown *, REFIID);
typedef BOOL (*WX86PFNIN2XP)(IUnknown *);
typedef PVOID *(*PFNWX86LOADWHOLE32)(
void
);
typedef void (*PFNWX86UNLOADWHOLE32)(
void
);
typedef PVOID (*WHOLEUNMARSHALLEDINSAMEAPT)(PVOID pv, REFIID piid);
typedef void (*WHOLEAGGREGATEPROXY)(IUnknown *, IUnknown *);
#define WholeNeedX86PSFactoryIdx 8
#define WholeIsN2XProxyIdx 9
#define WholeThunkDllGetClassObjectIdx 10
#define WholeThunkDllCanUnloadNowIdx 11
#define WholeUnmarshalledInSameApt 13
#define WholeAggregateProxy 14
class CWx86 {
public:
CWx86();
~CWx86();
PFNDLLGETCLASSOBJECT TranslateDllGetClassObject(PFNDLLGETCLASSOBJECT pv);
PFNDLLCANUNLOADNOW TranslateDllCanUnloadNow(PFNDLLCANUNLOADNOW pv);
BOOL IsModuleX86(HMODULE hModule);
BOOL IsWx86Enabled(void);
void SetStubInvokeFlag(UCHAR bFlag);
BOOL NeedX86PSFactory(IUnknown *punkObj, REFIID riid);
BOOL IsN2XProxy(IUnknown *punk);
BOOL SetLoadAsX86(BOOL bFlag);
BOOL IsWx86Calling(void);
BOOL SetIsWx86Calling(BOOL bFlag);
PVOID UnmarshalledInSameApt(PVOID pv, REFIID piid);
void AggregateProxy(IUnknown *, IUnknown *);
BOOL IsWx86Installed(void);
private:
PVOID *_apvWholeFuncs;
BOOL _fIsWx86Installed;
};
inline BOOL CWx86::IsWx86Installed(void)
{
return(_fIsWx86Installed);
}
#endif
|