Я уже разобрался. CreateControl. А вообще, в VC есть средство создания класса прямо из файла (в моем случае dll, но можно ocx и др.). Причем создается класс со всеми методами и свойствами объекта. Так что проблем не возникло. Вот часть того, что сгенерил Wizard:
| Код | class CSamAll3 : public CWnd { protected: DECLARE_DYNCREATE(CSamAll3) public: CLSID const& GetClsid() { static CLSID const clsid = { 0x2AE09006, 0x7261, 0x11D2, { 0x8D, 0x28, 0x0, 0x0, 0xE8, 0xDC, 0x54, 0xD2 } }; return clsid; } virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL) { return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID); }
...
void put_DeviceEnabled(BOOL newValue) { static BYTE parms[] = VTS_BOOL; InvokeHelper(0x6, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, newValue); } CString get_DeviceDescription() { CString result; InvokeHelper(0x1b, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL); return result; }
...
long EndReport() { long result; InvokeHelper(0x27, DISPATCH_METHOD, VT_I4, (void*)&result, NULL); return result; } long SetCaption() { long result; InvokeHelper(0x2c, DISPATCH_METHOD, VT_I4, (void*)&result, NULL); return result; } long SetValue() { long result; InvokeHelper(0x48, DISPATCH_METHOD, VT_I4, (void*)&result, NULL); return result; } ... };
|
|