C++MFC大漠调用–
新建基于对话框的MFC程序
右键项目,添加,新建项,MFC,TypeLib 中的 MFC 类
修改 Cdmsoft.h 中 #import “dm.dll” no_namespace
1,提示错误,加 VT_BOOL
// 使用“从类型库添加类”向导创建的计算机生成的 IDispatch 包装类
//双击打开头文件修改成 #import “dm.dll” no_namespace,使用根路径,并将dm.dll文件复制到项目中
//#import "dm.dll" no_namespace
//#include "Debug/dm.tli"
#import "dm.dll" no_namespace
// Cdmsoft 包装类
class Cdmsoft : public COleDispatchDriver
{
public:
Cdmsoft() {
} // 调用 COleDispatchDriver 默认构造函数
Cdmsoft(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {
}
Cdmsoft(const Cdmsoft& dispatchSrc) : COleDispatchDriver(dispatchSrc) {
}
// 属性
public:
// 操作
public:
// Idmsoft 方法
public:
CString Ver()
{
CString result;
InvokeHelper(0x1, DISPATCH_METHOD, VT_BSTR, (void*)&result, nullptr);
return result;
}
long SetPath(LPCTSTR path)
{
long result;
static BYTE parms[] = VTS_BSTR;
InvokeHelper(0x2, DISPATCH_METHOD, VT_I4, (void*)&result, parms, path);
return result;
}
CString Ocr(long x1, long y1, long x2, long y2, LPCTSTR color, double sim)
{
CString result;
static BYTE parms[] = VTS_I4 VTS_I4 VTS_I4 VTS_I4 VTS_BSTR VTS_R8;
InvokeHelper(0x3, DISPATCH_METHOD, VT_BSTR, (void*)&result, parms, x1, y1, x2, y2, color, sim);
return result;
}
long FindStr(long x1, long y1, long x2, long y2, LPCTSTR str, LPCTSTR color, double sim, VARIANT * x, VARIANT * y)
{
long result;
static BYTE parms[] = VTS_I4 VTS_I4 VTS_I4 VTS_I4 VTS_BSTR VTS_BSTR VTS_R8 VTS_PVARIANT VTS_PVARIANT;
InvokeHelper(0x4, DISPATCH_METHOD, VT_I4, (void*)&result, parms, x1, y1, x2, y2, str, color, sim, x, y);
return result;
}
long GetResultCount(LPCTSTR str)
{
long result;
static BYTE parms[] = VTS_BSTR;
InvokeHelper(0x5, DISPATCH_METHOD, VT_I4, (void*)&result, parms, str);
return result;
}
long GetResultPos(LPCTSTR str, long index, VARIANT * x, VARIANT * y)
{
long result;
static BYTE parms[] = VTS_BSTR VTS_I4 VTS_PVARIANT VTS_PVARIANT;
InvokeHelper(0x6, DISPATCH_METHOD, VT_I4, (void*)&result, parms, str, index, x, y);
return result;
}
long StrStr(LPCTSTR s, LPCTSTR str)
{
long result;
static BYTE parms[] = VTS_BSTR VTS_BSTR;
InvokeHelper(0x7, DISPATCH_METHOD, VT_I4, (void*)&result, parms, s, str);
return result;
}
long SendCommand(LPCTSTR cmd)
{
long result;
static BYTE parms[] = VTS_BSTR;
InvokeHelper(0x8, DISPATCH_METHOD, VT_I4, (void*)&result, parms, cmd);
return result;
}
long UseDict(long index)
{
long result;
static BYTE parms[] = VTS_I4;
InvokeHelper(0x9, DISPATCH_METHOD, VT_I4, (void*)&result, parms, index);
return result;
}
CString GetBasePath()
{
CString result;
InvokeHelper(0xa, DISPATCH_METHOD, VT_BSTR, (void*)&result, nullptr);
return result;
}
long SetDictPwd(LPCTSTR pwd)
{
long result;
static BYTE parms[] = VTS_BSTR;
InvokeHelper(0xb, DISPATCH_METHOD, VT_I4, (void*)&result, parms, pwd);
return result;
}
CString OcrInFile(long x1, long y1, long x2, long y2, LPCTSTR pic_name, LPCTSTR color, double sim)
{
CString result;
static BYTE parms[] = VTS_I4 VTS_I4 VTS_I4 VTS_I4 VTS_BSTR VTS_BSTR VTS_R8;
InvokeHelper(0xc, DISPATCH_METHOD, VT_BSTR, (void*)&result, parms, x1, y1, x2, y2, pic_name, color, sim);
return result;
}
long Capture(long x1, long y1, long x2, long y2, LPCTSTR file)
{
long result;
static BYTE parms[] = VTS_I4 VTS_I4 VTS_I4 VTS_I4 VTS_BSTR;
InvokeHelper(0xd, DISPATCH_METHOD, VT_I4, (void*)&result, parms, x1, y1, x2, y2, file);
return result;
}
long KeyPress(long vk)
{
long result;
static BYTE parms[] = VTS_I4;
InvokeHelper(0xe, DISPATCH_METHOD, VT_I4, (void*)&result, parms, vk);
return result;
}
long KeyDown(long vk)
{
long result;
static BYTE parms[] = VTS_I4;
InvokeHelper(0xf, DISPATCH_METHOD, VT_I4, (void*)&result, parms, vk);
return result;
}
long KeyUp(long vk)
{
long result;
static BYTE parms[] = VTS_I4;
InvokeHelper(0x10, DISPATCH_METHOD, VT_I4, (void*)&result, parms, vk);
return result;
}
long LeftClick()
{
long result;
InvokeHelper(0x11, DISPATCH_METHOD, VT_I4, (void*)&result, nullptr);
return result;
}
long RightClick()
{
long result;
InvokeHelper(0x12, DISPATCH_METHOD, VT_I4, (void*)&result, nullptr);
return result;
}
long MiddleClick()
{
long result;
InvokeHelper(0x13, DISPATCH_METHOD, VT_I4, (void*)&result, nullptr);
return result;
}
long LeftDoubleClick()
{
long result;
InvokeHelper(0x14, DISPATCH_METHOD, VT_I4, (void*)&result, nullptr);
return result;
}
long LeftDown()
{
long result;
InvokeHelper(0x15, DISPATCH_METHOD, VT_I4, (void*)&result, nullptr);
return result;
}
long LeftUp()
{
long result;
InvokeHelper(0x16, DISPATCH_METHOD, VT_I4, (void*)&result, nullptr);
return result;
}
long RightDown()
{
long result;
InvokeHelper(0x17, DISPATCH_METHOD, VT_I4, (void*)&result, nullptr);
return result;
}
long RightUp()
{
long result;
InvokeHelper(0x18, DISPATCH_METHOD, VT_I4, (void*)&result, nullptr);
return result;
}
long MoveTo(long x, long y)
{
long result;
static BYTE parms[] = VTS_I4 VTS_I4;
InvokeHelper(0x19, DISPATCH_METHOD, VT_I4, (void*)&result, parms, x, y);
return result;
}
long MoveR(long rx, long ry)
{
long result;
static BYTE parms[] = VTS_I4 VTS_I4;
InvokeHelper(0x1a, DISPATCH_METHOD, VT_I4, (void*)&result, parms, rx, ry);
return result;
}
CString GetColor(long x, long y)
{
CString result;
static BYTE parms[] = VTS_I4 VTS_I4;
InvokeHelper(0x1b, DISPATCH_METHOD, VT_BSTR, (void*)&result, parms, x, y);
return result;
}
CString GetColorBGR(long x, long y)
{
CString result;
static BYTE parms[] = VTS_I4 VTS_I4;
InvokeHelper(0x1c, DISPATCH_METHOD, VT_BSTR, (void*)&result, parms, x, y);
return result;
}
CString RGB2BGR(LPCTSTR rgb_color)
{
CString result;
static BYTE parms[] = VTS_BSTR;
InvokeHelper(0x1d, DISPATCH_METHOD, VT_BSTR, (void*)&result, parms, rgb_color);
return result;
}
CString BGR2RGB(LPCTSTR bgr_color)
{
CString result;
static BYTE parms[] = VTS_BSTR;
InvokeHelper(0x1e, DISPATCH_METHOD, VT_BSTR, (void*)&result, parms, bgr_color);
return result;
}
long UnBindWindow()
{
long result;
InvokeHelper(0x1f, DISPATCH_METHOD, VT_I4, (void*)&result, nullptr);
return result;
}
long CmpColor(long x, long y, LPCTSTR color, double sim)
{
long result;
static BYTE parms[] = VTS_I4 VTS_I4 VTS_BSTR VTS_R8;
InvokeHelper(0x20, DISPATCH_METHOD, VT_I4, (void*)&result, parms, x, y, color, sim);
return result;
}
long ClientToScreen(long hwnd, VARIANT * x, VARIANT * y)
{
long result;
static BYTE parms[] = VTS_I4 VTS_PVARIANT VTS_PVARIANT;
InvokeHelper(0x21, DISPATCH_METHOD, VT_I4, (void*)&result, parms, hwnd, x, y);
return result;
}
long ScreenToClient(long hwnd, VARIANT * x, VARIANT * y)
{
long result;
static BYTE parms[] = VTS_I4 VTS_PVARIANT VTS_PVARIANT;
InvokeHelper(0x22, DISPATCH_METHOD, VT_I4, (void*)&result, parms, hwnd, x, y);
return result;
}
long ShowScrMsg(long x1, long y1, long x2, long y2, LPCTSTR msg, LPCTSTR color)
{
long result;
static BYTE parms[] = VTS_I4 VTS_I4 VTS_I4 VTS_I4 VTS_BSTR VTS_BSTR;
InvokeHelper(0x23, DISPATCH_METHOD, VT_I4, (void*)&result, parms, x1, y1, x2, y2, msg, color);
return result;
}
long SetMinRowGap(long row_gap)
{
long result;
static BYTE parms[] = VTS_I4;
InvokeHelper(0x24, DISPATCH_METHOD, VT_I4, (void*)&result, parms, row_gap);
return result;
}
long SetMinColGap(long col_gap)
{
long result;
static BYTE parms[] = VTS_I4;
InvokeHelper(0x25, DISPATCH_METHOD, VT_I4, (void*)&result, parms, col_gap);
return result;
}
long FindColor(long x1, long y1, long x2, long y2, LPCTSTR color, double sim, long dir, VARIANT * x, VARIANT * y)
{
long result;
static BYTE parms[] = VTS_I4 VTS_I4 VTS_I4 VTS_I4 VTS_BSTR VTS_R8 VTS_I4 VTS_PVARIANT VTS_PVARIANT;
InvokeHelper(0x26, DISPATCH_METHOD, VT_I4, (void*)&result, parms, x1, y1, x2, y2, color, sim, dir, x, y);
return result;
}
CString FindColorEx(long x1, long y1, long x2, long y2, LPCTSTR color, double sim, long dir)
{
CString result;
static BYTE parms[] = VTS_I4 VTS_I4 VTS_I4 VTS_I4 VTS_BSTR VTS_R8 VTS_I4;
InvokeHelper(0x27, DISPATCH_METHOD, VT_BSTR, (void*)&result, parms, x1, y1, x2, y2, color, sim, dir);
return result;
}
long SetWordLineHeight(long line_height)
{
long result;
static BYTE parms[] = VTS_I4;
InvokeHelper(0x28, DISPATCH_METHOD, VT_I4, (void*)&result, parms, line_height);
return result;
}
long SetWordGap(long word_gap)
{
long result;
static BYTE parms[] = VTS_I4;
InvokeHelper(0x29, DISPATCH_METHOD, VT_I4, (void*)&result, parms, word_gap);
return result;
}
long SetRowGapNoDict(long row_gap)
{
long result;
static BYTE parms[] = VTS_I4;
InvokeHelper(0x2a, DISPATCH_METHOD, VT_I4, (void*)&result, parms, row_gap);
return result;
}
long SetColGapNoDict(long col_gap)
{
long result;
static BYTE parms[] = VTS_I4;
InvokeHelper(0x2b, DISPATCH_METHOD, VT_I4, (void*)&result, parms, col_gap);
return result;
}
long SetWordLineHeightNoDict(long line_height)
{
long result;
static BYTE parms[] = VTS_I4;
InvokeHelper(0x2c, DISPATCH_METHOD, VT_I4, (void*)&result, parms, line_height);
return result;
}
long SetWordGapNoDict(long word_gap)
{
long result;
static BYTE parms[] = VTS_I4;
InvokeHelper(0x2d, DISPATCH_METHOD, VT_I4, (void*)&result, parms, word_gap);
return result;
}
long GetWordResultCount(LPCTSTR str)
{
long result;
static BYTE parms[] = VTS_BSTR;
InvokeHelper(0x2e, DISPATCH_METHOD, VT_I4, (void*)&result, parms, str);
return result;
}
long GetWordResultPos(LPCTSTR str, long index, VARIANT * x, VARIANT * y)
{
long result;
static BYTE parms[] = VTS_BSTR VTS_I4 VTS_PVARIANT VTS_PVARIANT;
InvokeHelper(0x2f, DISPATCH_METHOD, VT_I4, (void*)&result, parms, str, index, x, y);
return result;
}
CString GetWordResultStr(LPCTSTR str, long index)
{
CString result;
static BYTE parms[] = VTS_BSTR VTS_I4;
InvokeHelper(0x30, DISPATCH_METHOD, VT_BSTR, (void*)&result, parms, str, index);
return result;
}
CString GetWords(long x1, long y1, long x2, long y2, LPCTSTR color, double sim)
{
CString result;
static BYTE parms[] = VTS_I4 VTS_I4 VTS_I4 VTS_I4 VTS_BSTR VTS_R8;
InvokeHelper(0x31, DISPATCH_METHOD, VT_BSTR, (void*)&result, parms, x1, y1, x2, y2, color, sim);
return result;
}
CString GetWordsNoDict(long x1, long y1, long x2, long y2, LPCTSTR color)
{
CString result;
static BYTE parms[] = VTS_I4 VTS_I4 VTS_I4 VTS_I4 VTS_BSTR;
InvokeHelper(0x32, DISPATCH_METHOD, VT_BSTR, (void*)&result, parms, x1, y1, x2, y2, color);
return result;
}
long SetShowErrorMsg(long show)
{
long result;
static BYTE parms[] = VTS_I4;
InvokeHelper(0x33, DISPATCH_METHOD, VT_I4, (void*)&result, parms, show);
return result;
}
long GetClientSize(long hwnd, VARIANT * width, VARIANT * height)
{
long result;
static BYTE parms[] = VTS_I4 VTS_PVARIANT VTS_PVARIANT;
InvokeHelper(0x34, DISPATCH_METHOD, VT_I4, (void*)&result, parms, hwnd, width, height);
return result;
}
long MoveWindow(long hwnd, long x, long y)
{
long result;
static BYTE parms[] = VTS_I4 VTS_I4 VTS_I4;
InvokeHelper(0x35, DISPATCH_METHOD, VT_I4, (void*)&result, parms, hwnd, x, y);
return result;
}
CString GetColorHSV(long x, long y)
{
CString result;
static BYTE parms[] = VTS_I4 VTS_I4;
InvokeHelper(0x36, DISPATCH_METHOD, VT_BSTR, (void*)&result, parms, x, y);
return result;
}
CString GetAveRGB(long x1, long y1, long x2, long y2)
{
CString result;
static BYTE parms[] = VTS_I4 VTS_I4 VTS_I4 VTS_I4;
InvokeHelper(0x37, DISPATCH_METHOD, VT_BSTR, (void*)&result, parms, x1, y1, x2, y2);
return result;
}
CString GetAveHSV(long x1, long y1, long x2, long y2)
{
CString result;
static BYTE parms[] = VTS_I4 VTS_I4 VTS_I4 VTS_I4;
InvokeHelper(0x38, DISPATCH_METHOD, VT_BSTR, (void*)&result, parms, x1, y1, x2, y2);
return result;
}
long GetForegroundWindow()
{
long result;
InvokeHelper(0x39, DISPATCH_METHOD, VT_I4, (void*)&result, nullptr);
return result;
}
long GetForegroundFocus()
{
long result;
InvokeHelper(0x3a, DISPATCH_METHOD, VT_I4, (void*)&result, nullptr);
return result;
}
long GetMousePointWindow()
{
long result;
InvokeHelper(0x3b, DISPATCH_METHOD, VT_I4, (void*)&result, nullptr);
return result;
}
long GetPointWindow(long x, long y)
{
long result;
static BYTE parms[] = VTS_I4 VTS_I4;
InvokeHelper(0x3c, DISPATCH_METHOD, VT_I4, (void*)&result, parms, x, y);
return result;
}
CString EnumWindow(long parent, LPCTSTR title, LPCTSTR class_name, long filter)
{
CString result;
static BYTE parms[] = VTS_I4 VTS_BSTR VTS_BSTR VTS_I4;
InvokeHelper(0x3d, DISPATCH_METHOD, VT_BSTR, (void*)&result, parms, parent, title, class_name, filter);
return result;
}
long GetWindowState(long hwnd, long flag)
{
long result;
static BYTE parms[] = VTS_I4 VTS_I4;
InvokeHelper(0x3e, DISPATCH_METHOD, VT_I4, (void*)&result, parms, hwnd, flag);
return result;
}
long GetWindow(long hwnd, long flag)
{
long result;
static BYTE parms[] = VTS_I4 VTS_I4;
InvokeHelper(0x3f, DISPATCH_METHOD, VT_I4, (void*)&result, parms, hwnd, flag);
return result;
}
long GetSpecialWindow(long flag)
{
long result;
static BYTE parms[] = VTS_I4;
InvokeHelper(0x40, DISPATCH_METHOD, VT_I4, (void*)&result, parms, flag);
return result;
}
long SetWindowText(long hwnd, LPCTSTR text)
{
long result;
static BYTE parms[] = VTS_I4 VTS_BSTR;
InvokeHelper(0x41, DISPATCH_METHOD, VT_I4, (void*)&result, parms, hwnd, text);
return result;
}
long SetWindowSize(long hwnd, long width, long height)
{
long result;
static BYTE parms[] = VTS_I4 VTS_I4 VTS_I4;
InvokeHelper(0x42, DISPATCH_METHOD, VT_I4, (void*)&result, parms, hwnd, width, height);
return result;
}
long GetWindowRect(long hwnd, VARIANT * x1, VARIANT * y1, VARIANT * x2, VARIANT * y2)
{
long result;
static BYTE parms[] = VTS_I4 VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT;
InvokeHelper(0x43, DISPATCH_METHOD, VT_I4, (void*)&result, parms, hwnd, x1, y1, x2, y2);
return result;
}
CString GetWindowTitle(long hwnd)
{
CString result;
static BYTE parms[] = VTS_I4;
InvokeHelper(0x44, DISPATCH_METHOD, VT_BSTR, (void*)&result, parms, hwnd);
return result;
}
CString GetWindowClass(long hwnd)
{
CString result;
static BYTE parms[] = VTS_I4;
InvokeHelper(0x45, DISPATCH_METHOD, VT_BSTR, (void*)&result, parms, hwnd);
return result;
}
long SetWindowState(long hwnd, long flag)
{
long result;
static BYTE parms[] = VTS_I4 VTS_I4;
InvokeHelper(0x46, DISPATCH_METHOD, VT_I4, (void*)&result, parms, hwnd, flag);
return result;
}
long CreateFoobarRect(long hwnd, long x, long y, long w, long h)
{
long result;
static BYTE parms[] = VTS_I4 VTS_I4 VTS_I4 VTS_I4 VTS_I4;
InvokeHelper(0x47, DISPATCH_METHOD, VT_I4, (void*)&result, parms, hwnd, x, y, w, h);
return result;
}
long CreateFoobarRoundRect(long hwnd, long x, long y, long w, long h, long rw, long rh)
{
long result;
static BYTE parms[] = VTS_I4 VTS_I4 VTS_I4 VTS_I4 VTS_I4 VTS_I4 VTS_I4;
InvokeHelper(0x48, DISPATCH_METHOD, VT_I4, (void*)&result, parms, hwnd, x, y, w, h, rw, rh);
return result;
}
long CreateFoobarEllipse(long hwnd, long x, long y, long w, long h)
{
long result;
static BYTE parms[] = VTS_I4 VTS_I4 VTS_I4 VTS_I4 VTS_I4;
InvokeHelper(0x49, DISPATCH_METHOD, VT_I4, (void*)&result, parms, hwnd, x, y, w, h);
return result;
}
long CreateFoobarCustom(long hwnd, long x, long y, LPCTSTR pic, LPCTSTR trans_color, double sim)
{
long result;
static BYTE parms[] = VTS_I4 VTS_I4 VTS_I4 VTS_BSTR VTS_BSTR VTS_R8;
InvokeHelper(0x4a, DISPATCH_METHOD, VT_I4, (void*)&result, parms, hwnd, x, y, pic, trans_color, sim);
return result;
}
long FoobarFillRect(long hwnd, long x1, long y1, long x2, long y2, LPCTSTR color)
{
long result;
static BYTE parms[] = VTS_I4 VTS_I4 VTS_I4 VTS_I4 VTS_I4 VTS_BSTR;
InvokeHelper(0x4b, DISPATCH_METHOD, VT_I4, (void*)&result, parms, hwnd, x1, y1, x2, y2, color);
return result;
}
long FoobarDrawText(long hwnd, long x, long y, long w, long h, LPCTSTR text, LPCTSTR color, long align)
{
long result;
static BYTE parms[] = VTS_I4 VTS_I4 VTS_I4 VTS_I4 VTS_I4 VTS_BSTR VTS_BSTR VTS_I4;
InvokeHelper(0x4c, DISPATCH_METHOD, VT_I4, (void*)&result, parms, hwnd, x, y, w, h, text, color, align);
return result;
}
long FoobarDrawPic(long hwnd, long x, long y, LPCTSTR pic, LPCTSTR trans_color)
{
long result;
static BYTE parms[] = VTS_I4 VTS_I4 VTS_I4 VTS_BSTR VTS_BSTR;
InvokeHelper(0x4d, DISPATCH_METHOD, VT_I4, (void*)&result, parms, hwnd, x, y, pic, trans_color);
return result;
}
long FoobarUpdate(long hwnd)
{
long result;
static BYTE parms[] = VTS_I4;
InvokeHelper(0x4e, DISPATCH_METHOD, VT_I4, (void*)&result, parms, hwnd);
return result;
}
long FoobarLock(long hwnd)
{
long result;
static BYTE parms[] = VTS_I4;
InvokeHelper(0x4f, DISPATCH_METHOD, VT_I4, (void*)&result, parms, hwnd);
return result;
}
long FoobarUnlock(long hwnd)
{
long result;
static BYTE parms[] = VTS_I4;
InvokeHelper(0x50, DISPATCH_METHOD, VT_I4, (void*)&result, parms, hwnd);
return result;
}
long FoobarSetFont(long hwnd, LPCTSTR font_name, long size, long flag)
{
long result;
static BYTE parms[] = VTS_I4 VTS_BSTR VTS_I4 VTS_I4;
InvokeHelper(0x51, DISPATCH_METHOD, VT_I4, (void*)&result, parms, hwnd, font_name, size, flag);
return result;
}
long FoobarTextRect(long hwnd, long x, long y, long w, long h)
{
long result;
static BYTE parms[] = VTS_I4 VTS_I4 VTS_I4 VTS_I4 VTS_I4;
InvokeHelper(0x52, DISPATCH_METHOD, VT_I4, (void*)&result, parms, hwnd, x, y, w, h);
return result;
}
long FoobarPrintText(long hwnd, LPCTSTR text, LPCTSTR color)
{
long result;
static BYTE parms[] = VTS_I4 VTS_BSTR VTS_BSTR;
InvokeHelper(0x53, DISPATCH_METHOD, VT_I4, (void*)&result, parms, hwnd, text, color);
return result;
}
long FoobarClearText(long hwnd)
{
long result;
static BYTE parms[] = VTS_I4;
InvokeHelper(0x54, DISPATCH_METHOD, VT_I4, (void*)&result, parms, hwnd);
return result;
}
long FoobarTextLineGap(long hwnd, long gap)
{
long result;
static BYTE parms[] = VTS_I4 VTS_I4;
InvokeHelper(0x55, DISPATCH_METHOD, VT_I4, (void*)&result, parms, hwnd, gap);
return result;
}
long Play(LPCTSTR file)
{
long result;
static BYTE parms[] = VTS_BSTR;
InvokeHelper(0x56, DISPATCH_METHOD, VT_I4, (void*)&result, parms, file);
return result;
}
long FaqCapture(long x1, long y1, long x2