Listing 3
#include "TradingSystemImpl.h" // includes jni.h
#define INITGUIDS
#include "stdafx.h"
#include <ole2.h>
#include <ole2ver.h>
#include "stdlib.h"
// The GUIDs for using the ITradeStock interface
const IID IID_ITradeStock = {0x326E68F3,0x6376,0x4A32,
{0xA0,0xA5,0xDD,0x37,0x02,0x6C,0xCC,0x3C}};
const IID LIBID_TRADINGSYSTEMLib = {0x81C64ABD,0xEDBB,0x492D,
{0xB6,0x22,0xC6,0x2E,0x6F,0x68,0x0F,0xC3}};
const CLSID CLSID_TradeStock = {0x0D46CA8E,0x90A1,0x4F1F,
{0xAE,0xBD,0x08,0xAB,0x32,0x10,0x93,0xF6}};
BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call,
LPVOID lpReserved)
{
if ( FAILED ( CoInitialize(NULL) ) )
return FALSE;
return TRUE;
}
ITradeStock* GetTradeStockRef()
{
ITradeStock* pITradeStock = NULL;
CoCreateInstance(CLSID_TradeStock, NULL, CLSCTX_LOCAL_SERVER,
IID_ITradeStock, (VOID**)&pITradeStock);
return pITradeStock;
}
void ReleaseTradeStockRef(ITradeStock* pITradeStock)
{
if (pITradeStock ) pITradeStock->Release();
}
/* Class: TradeStockImpl
* Method: doBuy
* Signature: (Ljava/lang/String;I)Ljava/lang/String;
*/
JNIEXPORT jstring JNICALL
Java_TradeStockImpl_doBuy(JNIEnv * env, jobject me, jstring Stock,
jint Shares)
{
// ...
}
...