This page is in Pre Alpha. That means no grammer checks, no editting and speeling mistakes galore! The explanations and the final version will come soon. Check it out at your own risk! Com calling code in Java set include=c:\msdev\include set lib=c:\msdev\lib PATH=C:\SDK-JAVA\BIN;C:\WINDOWS;C:\WINDOWS\COMMAND;C:\DOS622;C:\MSDEV\BIN; zzz.java class zzz implements mmm.jjj { public int abc() { System.out.println("invoked from COM: abc") ; return 5; } } 1. jvc zzz.java mmm.odl [uuid(BBBBBBB0-F601-11cf-BC7E-00A0C913D202)] library mmmLib { importlib("stdole32.tlb") ; [uuid(BBBBBBB1-F601-11cf-BC7E-00A0C913D202),odl] interface jjj : IUnknown { int abc() ; } [uuid(BBBBBBB2-F601-11cf-BC7E-00A0C913D202)] coclass mmm { interface jjj ; } }; 2. mktyplib mmm.odl -h mmm.h 3. javatlb -d .\ mmm.tlb 4. jvc zzz.java a.bat rundll32 msjava.dll,RegisterJavaClass zzz {BBBBBBB2-F601-11cf-BC7E-00A0C913D202} sjj.cpp #define INITGUID #include #include "mmm.h" #include char aa[100]; long _stdcall zzz(HWND w,UINT x,UINT y,long z) { if ( x == WM_LBUTTONDOWN) { jjj *mp;HRESULT hr; hr=CoCreateInstance(CLSID_mmm,0,CLSCTX_SERVER,IID_jjj,(void **)&mp); hr=mp->abc() ; sprintf(aa,"Return Value hr=%d..",hr); MessageBox(0,aa,"hi",0); MessageBox(0,"over","over",0); } if ( x == WM_DESTROY) PostQuitMessage(0); return DefWindowProc(w,x,y,z); } WNDCLASS a;HWND b;MSG c; int _stdcall WinMain(HINSTANCE i,HINSTANCE j,char *k,int l) { a.lpszClassName="a1";a.hInstance=i;a.lpfnWndProc=zzz; a.hbrBackground=GetStockObject(WHITE_BRUSH); RegisterClass(&a); b=CreateWindow("a1","kkk",WS_OVERLAPPEDWINDOW,0,0,0,0,0,0,i,0); OleInitialize(0); ShowWindow(b,3); while ( GetMessage(&c,0,0,0)) DispatchMessage(&c); }