A
download guid.cpp
Language: C++
LOC: 30
Project Info
JCom (Java-COM Bridge)(jcom)
Server: SourceForge
Type: cvs
...e\j\jcom\jcom\jcom\src\cpp\
   callCom.cpp
   Com.cpp
   guid.cpp
   IDispatch.cpp
   IEnumVARIANT.cpp
   InvokeHelper.cpp
   IPersist.cpp
   ITypeInfo.cpp
   ITypeLib.cpp
   IUnknown.cpp
   JCom.h
   ...2_no_0005fji_jcom_Com.h
   ...005fji_jcom_IDispatch.h
   ...fji_jcom_IEnumVARIANT.h
   ...0005fji_jcom_IPersist.h
   ...005fji_jcom_ITypeInfo.h
   ...0005fji_jcom_ITypeLib.h
   ...0005fji_jcom_IUnknown.h
   JString.cpp
   VARIANT.cpp

// GUID֌W̃Cu

#include <jni.h>
#include "atlbase.h"
#include "JCom.h"

//------------------------------------------------------------------------------
//	javajcom.GUIDNXC++GUID\̂쐬B
//	JNI̔źAŜł̓IuWFNgƂĈBvfv~eBu^̏ꍇA
//	̔z̃C[WŁA̗vfxɓ]łBAP‚‚
//	łB
//------------------------------------------------------------------------------
void jobject2GUID(JNIEnv* env, jobject guid, GUID* IID)
{
	jclass clsGUID = env->GetObjectClass(guid);
	// int data1 o
	jfieldID fieldData1 = env->GetFieldID(clsGUID, "data1", "I");
	IID->Data1 = (unsigned long)env->GetIntField(guid, fieldData1);
	// short data2 o
	jfieldID fieldData2 = env->GetFieldID(clsGUID, "data2", "S");
	IID->Data2 = (unsigned short)env->GetShortField(guid, fieldData2);
	// short data3 o
	jfieldID fieldData3 = env->GetFieldID(clsGUID, "data3", "S");
	IID->Data3 = (unsigned short)env->GetShortField(guid, fieldData3);
	// byte[] data4 o
	jfieldID fieldData4 = env->GetFieldID(clsGUID, "data4", "[B");
	jbyteArray data4 = (jbyteArray)env->GetObjectField(guid, fieldData4);
	jbyte buf[8];
	env->GetByteArrayRegion(data4, 0, 8, buf);
	for(int i=0; i<8; i++) {
		IID->Data4[i] = (BYTE)buf[i];
	}
}

//------------------------------------------------------------------------------
//	C++GUID\̂JavaGUIDIuWFNg𐶐
//------------------------------------------------------------------------------
jobject GUID2jobject(JNIEnv* env, GUID* guid)
{
	// GUIDCX^X𐶐
	jclass clsGUID = env->FindClass(CLASS_GUID);
	jmethodID method = env->GetMethodID(clsGUID, "<init>", "(ISSBBBBBBBB)V");
	jobject jGuid = env->NewObject(clsGUID, method, 
				(jint)guid->Data1,(jshort)guid->Data2,(jshort)guid->Data3,
				(jbyte)guid->Data4[0],(jbyte)guid->Data4[1],(jbyte)guid->Data4[2],(jbyte)guid->Data4[3],
				(jbyte)guid->Data4[4],(jbyte)guid->Data4[5],(jbyte)guid->Data4[6],(jbyte)guid->Data4[7]);
	return jGuid;
}


About Koders | Resources | Downloads | Support | Black Duck | Terms of Service | DMCA | Privacy Policy | Contact Us