Учебник по Visual C++ .Net


Класс-оболочка Обычно при создании



//=========== COpenGL wrapper class

class COpenGL : public CWnd

{

protected:

DECLARE_DYNCREATE(COpenGL)

public:

//==== Метод для добывания CLSID нашего элемента

CLSID const& GetClsidO

{

static CLSID const clsid =

{

0x519d9ed8, Oxbc4'6, 0x4367,

{ Ox9c, OxcO, 0x49, 0x81, 0x40, Oxf3, 0x94, 0x16 }

};

return clsid;

}

virtual BOOL Create(LPCTSTR IpszClassName,

LPCTSTR IpszWindowName, DWORD dwStyle,

const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL)

{

return CreateControl(GetClsid(), IpszWindowName,

dwStyle, rect, pParentWnd, nID)

}

BOOL Create (LPCTSTR IpszWindowName, DWORD dwStyle,

const RECT& rect, CWnd* pParentWnd, UINT nID, CFile* pPersist = NULL,

BOOL bStorage = FALSE, BSTR bstrLicKey = NULL)

{

return CreateControl(GetClsidO, IpszWindowName, dwStyle, rect, pParentWnd, nID, pPersist, bStorage, bstrLicKey);

}

//====== Методы, экспонируемые элементом ActiveX

public:

void SetFillColor(unsigned long newValue);

unsigned long GetFillColor();

void GetLightParams(long* pPos);

void SetLightParam(short Ip, long nPos);

void ReadData();

void SetFillMode(DWORD mode);

void GetFillMode(DWORD* pMode);

void GetQuad(BOOL* bQuad);

void SetQuad(BOOL bQuad);

};

Самым важным моментом в процедуре вставки класса является правильное задание CLSID того класса OpenGL, который был зарегистрирован в операционной системе при создании DLL-сервера, то есть нашего элемента ActiveX. He пытайтесь сравнивать те цифры, которые приведены в книге, с теми, которые были приведены в ней же до этого момента, так как в процессе отладки пришлось не раз менять как классы, так и целиком приложения. Мне не хочется отслеживать эти жуткие номера. Если вы хотите вставить правильные цифры, то должны взять их из вашей версии предыдущего приложения ATLGL. Например, откройте файл ATLGL.IDL и возьмите оттуда CLSID для ко-класса OpenGL, то есть найдите такой фрагмент этого файла:

[

uuid(519D9ED8-BC46-4367-9CCO-498140F39416),




Начало  Назад  Вперед



Книжный магазин