#include <io.h>
#include <Stdio.h>
#import "E://vs//Projects//comtest1//ClassLibrary1//bin//Debug//ClassLibrary1.tlb" no_namespace //引入com組件
HWND ProWnd;
int newbuttonac();
uiCmdAccessState filter1(uiCmdAccessMode access_mode);
extern "C" int user_initialize()
{
ProFileName msgfilebuff;
ProStringToWstring(msgfilebuff,"KEmsg.txt");
uiCmdCmdId newbuttonid;
ProMenubarMenuAdd("New Menu","New-M-L","Help",PRO_B_TRUE,msgfilebuff);//添加一個新的菜單。定義的名字爲“New Menu”,而實際顯示的名字爲在text文檔中定義的“New-M-L”的值。定義菜單的位置在“Help”的右方。參考的text文件爲msgfilebuff。
ProCmdActionAdd("New-Menu-AC",(uiCmdCmdActFn)newbuttonac,uiCmdPrioDefault,filter1,PRO_B_FALSE,PRO_B_FALSE,&newbuttonid);
ProMenubarmenuPushbuttonAdd("New Menu","New Push Button","N-B-L","N-B-H",NULL,PRO_B_TRUE,newbuttonid,msgfilebuff); //在New Menu菜單下添加一個新的按鈕。
ProWnd=GetActiveWindow();
SetTimer(ProWnd,1,1000,TimerProc);
return 0;
}
extern "C" void user_terminate()
{
}
VOID CALLBACK TimerProc(HWND hWnd,UINT uMsg,UINT idEvent,DWORD dwTime)
{
if(_access("D://PKTest//TK_F4.ini",0)==0) return;
if(_access("D://PKTest//TK_BU4.ini",0)==0)
{
rename("D://PKTest//TK_BU4.ini","D://PKTest//TK_F4.ini");
newbuttonac();
}
}
int newbuttonac()
{
CoInitialize(NULL);//COM Pool初始化
CLSID clsid,iid;//定義classid和interfaceid
_bstr_t pRetr;//定義com函數回傳值類型
_comtest2 *pRet=NULL;//定義COM Interface類型
HRESULT hr;//定義COM Instance回傳類型
CLSIDFromString(L"{34d6550c-2c89-466f-99f4-7ad8b9261f99}",&clsid);//取出classid
CLSIDFromString(L"{b68d60a9-7ecb-4cdf-8fe6-e5ea1dd17c56}",&iid);//取出interfaceid
hr=CoCreateInstance(clsid,NULL,CLSCTX_ALL,iid,(VOID**)&pRet);//COM Interface接口建立
if(SUCCEEDED(hr))
{
// COM 函數執行與回傳值
pRetr=pRet->comUI() ;
// 回傳值型別轉換
strcpy_s(rtn, (char*)pRetr);
// 字串比對
/* if(strcmp(rtn,"ok")==0)
{
ProMessageDisplay(msgfile,"Form_start_ok");
}
else
{
MessageBox(NULL,rtn,"Error",MB_OK);
}*/
// COM 接口釋放
pRet->Release();
}
else
{
MessageBox(NULL,"Error","Error",MB_OK);
}
// COM Pool 結束
CoUninitialize();
return 0;
}