mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
1.8 KiB
80 lines
1.8 KiB
/*++
|
|
|
|
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
|