home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 2000 May / PCP163A.iso / Runimage / Cbuilder4 / Include / NATIVCOM.H < prev    next >
Encoding:
C/C++ Source or Header  |  1999-01-26  |  4.0 KB  |  108 lines

  1.  
  2. // (C) Copyright 1996, Microsoft Corporation and it suppliers.
  3.  
  4. //----------------------------------------------------------------------------
  5. // Public header for COM-marshaling facilities provided by MSJava.dll
  6. //----------------------------------------------------------------------------
  7.  
  8. #ifndef _NATIVCOM_
  9. #pragma option push -b -a8 -pc -A- /*P_O_Push_S*/
  10. #define _NATIVCOM_
  11.  
  12.  
  13. #include <windows.h>
  14. #include <native.h>
  15.  
  16.  
  17. #ifdef __cplusplus
  18. extern "C" {
  19. #endif
  20.  
  21.  
  22. //----------------------------------------------------------------------------
  23. // COM data wrapper helpers...
  24. //----------------------------------------------------------------------------
  25. void* __cdecl jcdwNewData(Hjava_lang_Object * phJCDW, unsigned int numBytes);
  26. void* __cdecl jcdwGetData(Hjava_lang_Object * phJCDW);
  27. unsigned int __cdecl jcdwSizeOf(Hjava_lang_Object * phJCDW);
  28. unsigned int __cdecl jcdwClassSizeOf(Hjava_lang_Object * phJavaClass);
  29. unsigned int __cdecl jcdwOffsetOf(Hjava_lang_Object * phJCDW, const char *pFieldName);
  30. unsigned int __cdecl jcdwClassOffsetOf(Hjava_lang_Object * phJCDWClass, const char *pFieldName);
  31. Hjava_lang_Object * __cdecl convert_IUnknown_to_Java_Object(IUnknown *punk,
  32.                                                             Hjava_lang_Object *phJavaClass,
  33.                                                             int       fAssumeThreadSafe);
  34. Hjava_lang_Object * __cdecl convert_IUnknown_to_Java_Object2(IUnknown    *punk,
  35.                                                              ClassClass  *pClassClass,
  36.                                                              int         fFreeThreaded);
  37.  
  38. IUnknown * __cdecl convert_Java_Object_to_IUnknown(Hjava_lang_Object *phJavaObject, const IID *pIID);
  39.  
  40.  
  41. Hjava_lang_Object * __cdecl convert_ptr_to_jcdw(void              *pExtData,
  42.                                                 Hjava_lang_Object *phJavaClass
  43.                                                 );
  44.  
  45. int __cdecl jcdw_memory_freed_on_gc(Hjava_lang_Object *phJCDW);
  46.  
  47.  
  48. int   __cdecl jcdwSetData(Hjava_lang_Object * phJCDW, LPVOID pv);
  49. int   __cdecl jcdw_java_owned(Hjava_lang_Object *phJCDW);
  50.  
  51.  
  52.  
  53.  
  54. //----------------------------------------------------------------------------
  55. // Map HRESULT to ComException.
  56. //----------------------------------------------------------------------------
  57. void    __cdecl SignalErrorHResult(HRESULT theHRESULT);
  58.  
  59. //----------------------------------------------------------------------------
  60. // Map Java exception to HRESULT.
  61. //----------------------------------------------------------------------------
  62. HRESULT __cdecl HResultFromException(OBJECT* exception_object);
  63.  
  64.  
  65.  
  66. typedef Hjava_lang_Object *JAVAARG;
  67.  
  68. //----------------------------------------------------------------------------
  69. // Information structure for Java->COM Custom Method hook.
  70. //----------------------------------------------------------------------------
  71. typedef struct {
  72.     DWORD                   cbSize;         // size of structure in bytes
  73.     IUnknown               *punk;           // pointer to interface being invoked
  74.     const volatile JAVAARG *pJavaArgs;      // pointer to Java argument stack
  75. } J2CMethodHookInfo;
  76.  
  77. //----------------------------------------------------------------------------
  78. // Information structure for COM->Java Custom Method hook.
  79. //----------------------------------------------------------------------------
  80. typedef struct {
  81.     DWORD                      cbSize;         // size of structure in bytes
  82.     struct methodblock        *javaMethod;     // java method to call
  83.     LPVOID                     pComArgs;       // pointer to COM method argument stack
  84.     const volatile JAVAARG    *ppThis;         // pointer to pointer to Java this
  85.  
  86.     // Store the COM result here.
  87.     union {
  88.         HRESULT                         resHR;
  89.         DWORD                           resDWORD;
  90.         double                          resDouble;
  91.     };
  92. } C2JMethodHookInfo;
  93.  
  94.  
  95.     
  96.  
  97. #ifdef __cplusplus
  98. }
  99. #endif
  100.  
  101.  
  102.  
  103. #pragma option pop /*P_O_Pop*/
  104. #endif _NATIVCOM_
  105.  
  106.  
  107.  
  108.