home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tricks of the Windows Gam…ming Gurus (2nd Edition)
/
Disc2.iso
/
vc98
/
include
/
nativcom.h
< prev
next >
Wrap
C/C++ Source or Header
|
1998-04-25
|
4KB
|
106 lines
// (C) Copyright 1996, Microsoft Corporation and it suppliers.
//----------------------------------------------------------------------------
// Public header for COM-marshaling facilities provided by MSJava.dll
//----------------------------------------------------------------------------
#ifndef _NATIVCOM_
#define _NATIVCOM_
#include <windows.h>
#include <native.h>
#ifdef __cplusplus
extern "C" {
#endif
//----------------------------------------------------------------------------
// COM data wrapper helpers...
//----------------------------------------------------------------------------
void* __cdecl jcdwNewData(Hjava_lang_Object * phJCDW, unsigned int numBytes);
void* __cdecl jcdwGetData(Hjava_lang_Object * phJCDW);
unsigned int __cdecl jcdwSizeOf(Hjava_lang_Object * phJCDW);
unsigned int __cdecl jcdwClassSizeOf(Hjava_lang_Object * phJavaClass);
unsigned int __cdecl jcdwOffsetOf(Hjava_lang_Object * phJCDW, const char *pFieldName);
unsigned int __cdecl jcdwClassOffsetOf(Hjava_lang_Object * phJCDWClass, const char *pFieldName);
Hjava_lang_Object * __cdecl convert_IUnknown_to_Java_Object(IUnknown *punk,
Hjava_lang_Object *phJavaClass,
int fAssumeThreadSafe);
Hjava_lang_Object * __cdecl convert_IUnknown_to_Java_Object2(IUnknown *punk,
ClassClass *pClassClass,
int fFreeThreaded);
IUnknown * __cdecl convert_Java_Object_to_IUnknown(Hjava_lang_Object *phJavaObject, const IID *pIID);
Hjava_lang_Object * __cdecl convert_ptr_to_jcdw(void *pExtData,
Hjava_lang_Object *phJavaClass
);
int __cdecl jcdw_memory_freed_on_gc(Hjava_lang_Object *phJCDW);
int __cdecl jcdwSetData(Hjava_lang_Object * phJCDW, LPVOID pv);
int __cdecl jcdw_java_owned(Hjava_lang_Object *phJCDW);
//----------------------------------------------------------------------------
// Map HRESULT to ComException.
//----------------------------------------------------------------------------
void __cdecl SignalErrorHResult(HRESULT theHRESULT);
//----------------------------------------------------------------------------
// Map Java exception to HRESULT.
//----------------------------------------------------------------------------
HRESULT __cdecl HResultFromException(OBJECT* exception_object);
typedef Hjava_lang_Object *JAVAARG;
//----------------------------------------------------------------------------
// Information structure for Java->COM Custom Method hook.
//----------------------------------------------------------------------------
typedef struct {
DWORD cbSize; // size of structure in bytes
IUnknown *punk; // pointer to interface being invoked
const volatile JAVAARG *pJavaArgs; // pointer to Java argument stack
} J2CMethodHookInfo;
//----------------------------------------------------------------------------
// Information structure for COM->Java Custom Method hook.
//----------------------------------------------------------------------------
typedef struct {
DWORD cbSize; // size of structure in bytes
struct methodblock *javaMethod; // java method to call
LPVOID pComArgs; // pointer to COM method argument stack
const volatile JAVAARG *ppThis; // pointer to pointer to Java this
// Store the COM result here.
union {
HRESULT resHR;
DWORD resDWORD;
double resDouble;
};
} C2JMethodHookInfo;
#ifdef __cplusplus
}
#endif
#endif _NATIVCOM_