コード例 #1
0
JNIEXPORT jobject JNICALL Java_jmtp_PortableDevicePropertiesImplWin32_getPropertyAttributes
	(JNIEnv* env, jobject obj, jstring jsObjectID, jobject key)
{
	HRESULT hr;
	IPortableDeviceProperties* pProperties;
	IPortableDeviceValues* pValues;
	LPWSTR wszObjectID;
	jclass cls;
	jmethodID mid;
	jobject reference;

	pProperties = GetPortableDeviceProperties(env, obj);
	wszObjectID = (WCHAR*)env->GetStringChars(jsObjectID, NULL);
	//printf("%ws\n", wszObjectID);
	//printf("s10001\n");
	hr = pProperties->GetPropertyAttributes(L"DEVICE", WPD_RESOURCE_ATTRIBUTE_CAN_DELETE, &pValues);
	env->ReleaseStringChars(jsObjectID,(jchar*)wszObjectID);

	if(FAILED(hr))
	{
		ThrowCOMException(env, L"Failed to retrieve the property", hr);
	}

	BOOL del;
	//hr = pValues->GetBoolValue(WPD_RESOURCE_ATTRIBUTE_CAN_DELETE, &del);;
	//printf("naam: %i\n", del);

	

	//smart reference object aanmaken
	cls = env->FindClass("be/derycke/pieter/com/COMReference");
	mid = env->GetMethodID(cls, "<init>", "(J)V");
	reference = env->NewObject(cls, mid, pValues);
	
	cls = env->FindClass("jmtp/PortableDeviceValues");
	mid = env->GetMethodID(cls, "<init>", "(Lbe/derycke/pieter/com/COMReference;)V");
	return env->NewObject(cls, mid, reference);
}