Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
 |  |  |
[C++] А никто не видел... 30.08.01 11:26 Число просмотров: 912
Автор: гомес Статус: Незарегистрированный пользователь
|
... просто работоспособный законченный кусок кода?
С MFC связь простая: у Круглински на паре страниц написано какие кнопки нажимать для MFC-проекта. Вы будете смеяться, я даже читал "Inside COM" :)
|
|
<programming>
|
[C++] OCX в С++ без MFC 29.08.01 20:07
Автор: гомес Статус: Незарегистрированный пользователь
|
|
Где можно посмотреть примеры использования готовых OCX в проектах на С++ без MFC?
|
 |
[C++] OCX в С++ без MFC 30.08.01 02:02
Автор: +. Статус: Незарегистрированный пользователь
|
> Где можно посмотреть примеры использования готовых OCX в > проектах на С++ без MFC?
A kakai svias` mezdu OCX i MFC?
OCX eto OLE Custom Control i ni kakogo otnoshenia k MFC ne imeet. I kak i luboi control mozhet byt` napisan, i estestvenno ispolzovan vo mnogih iazykah (C, C++, VB, .....), ne govoria uzhe o C++ bibliotekah. I chto by polnostiu poimet` vse ego (controla) blaga dlia etogo nuzhen OLE conteiner v kotorom on i begaet.
Skoree vsego tebe nado pochitat`o OLE/COM technology chto by pobolshe uznat` chto eto i kak eto ediat.
1. naprimer pochitai kak napisat` kontainer:
http://msdn.microsoft.com/library/en-us/dnolectrl/html/msdn_contcntr.asp?frame=true
2. Ty mozhesh Ispolzovat ATL / WTL chto by napisat container.
3. book : "Inside OLE" kstati ona est` v MSDN subscription
4. Ili prosto v MSDN poroisia.
|
 |  |
[c++] nu a esli tebe vse eto v oblom togda ispoluii atlaxcreatecontrol( lpcolestr lpszname, hwnd hwnd, istream* pstream, iunknown** ppunkcontainer ); 30.08.01 02:08
Автор: +. Статус: Незарегистрированный пользователь
|
Nu a esli vse eto v oblom togda ispolzui:
AtlAxCreateControl( LPCOLESTR lpszName, HWND hWnd, IStream* pStream, IUnknown** ppUnkContainer );
tam v ATL eche neskolko Function est` chto by s kontrolom rabotat`. No dlia eto nado Ispolzovat` ATL.
|
 |  |  |
[C++] А никто не видел... 30.08.01 11:26
Автор: гомес Статус: Незарегистрированный пользователь
|
... просто работоспособный законченный кусок кода?
С MFC связь простая: у Круглински на паре страниц написано какие кнопки нажимать для MFC-проекта. Вы будете смеяться, я даже читал "Inside COM" :)
|
 |  |  |  |
[COM] Example 31.08.01 02:51
Автор: + <Mikhail> Статус: Elderman Отредактировано 31.08.01 02:59 Количество правок: 1
|
> ... просто работоспособный законченный кусок кода? > С MFC связь простая: у Круглински на паре страниц написано > какие кнопки нажимать для MFC-проекта. Вы будете смеяться, > я даже читал "Inside COM" :)
Esli ty hochesh rabotat` s ATL functions(eto kstati samyi udobnyi variant), togda ty dolzhen sozdat` ATL project
vot Primer . I sozdal ATL .EXE server i vnutri _tWinMain(...) polozhil code
extern "C" int WINAPI _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nShowCmd)
{
// vseu baidu propuskaem sdes`
// . . .
// i pered samoi message loop vstavliem eto:
CMydlg dlg;
::IWebBrowserApp *pApp;
HRESULT hr;
IDispatch *punk, *punk2;
dlg.Create(0,0);
dlg.ShowWindow(SW_SHOWNORMAL);
hr = AtlAxCreateControl(L"Shell.Explorer", dlg.m_hWnd,
NULL,
(IUnknown**)&punk);
//punk - eto pointer na IUnknown of container v kotorom control runaetsia
if(!SUCCEEDED(hr))
goto _EXIT;
hr = AtlAxGetControl(dlg.m_hWnd, (IUnknown**)&punk2);
//punk2 - eto pointer na IUnknown tvoego controla.
if(!SUCCEEDED(hr))
{
punk->Release();
goto _EXIT;
}
hr = punk2->QueryInterface(IID_IWebBrowserApp, (void**)&pApp);
//teper poluchen pointer na interesuuchii nas interface (v dannom sluchae IWebBrowserApp)
punk->Release();
if(!SUCCEEDED(hr))
{
punk2->Release();
goto _EXIT;
}
punk2->Release();
if(SUCCEEDED(hr))
{
// i vyzyvaem method kotory my hoteli vyzvat`
hr = pApp->Navigate(L"http:\\localhost",0,0,0,0);
// konechno ze vsegda nuzhna proverka hr
// i ne zabyvau Relese() kak tolko interface bolshe ne nuzhen
MSG msg;
while (GetMessage(&msg, 0, 0, 0))
DispatchMessage(&msg);
pApp->Release();
}
_EXIT:
//sdes ostatok VC baidy .....
//....
}
---
CMydlg - eto class dlia sozdania Okna ( etot class ne osnovan na mfc!!) mozhesh ego sozdat` na osnoe novogo ATL objecta ( I ego tak i sozdal). mozhesh s pomochu Win32 API.
|
 |  |  |  |  |
Большое спасибо 31.08.01 03:46
Автор: гомес Статус: Незарегистрированный пользователь
|
|
|
|
|