LRESULT CDTDViewGroup::OnMDIActivate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) { HWND hwndChildDeact = (HWND) wParam; // child being deactivated HWND hwndChildAct = (HWND) lParam; // child being activated HWND hwnd; get_hwnd(&hwnd); BOOL bActivate = (hwnd == hwndChildAct); CComQIPtr<IUIManager> uiManager = gIFrame; if (bActivate) { //CComPtr<IDocumentsClass> documentsClass; //m_pDocument->GetDocumentsClass(&documentsClass); uiManager->ActivateObject(NULL/*documentsClass*/, m_pDocument->GetUnknown()); uiManager->ActivateObject(m_pDocument->GetUnknown(), GetUnknown()); // uiManager->ActivateObject(m_viewGroup->GetUnknown(), GetUnknown()); } CUIMDIChildImpl<CDTDViewGroup>::OnMDIActivate(uMsg, wParam, lParam, bHandled); if (!bActivate) { // uiManager->DeactivateObject(GetUnknown()); uiManager->DeactivateObject(GetUnknown()); uiManager->DeactivateObject(m_pDocument->GetUnknown()); } return 0; }
STDMETHODIMP CPageDesignerApp::Run(long *result) { CComObject<CPageDesignerFrame>::CreateInstance(&m_frame); m_frame->AddRef(); gIFrame = m_frame; if (m_frame->CreateEx() == NULL) { ATLTRACE(_T("Main window creation failed!\n")); return 0; } m_frame->ShowWindow(SW_SHOW/*nCmdShow*/); CComQIPtr<IUIManager> uiManager = m_frame; /* CComPtr<IUnknown> pThis; QueryInterface(IID_IUnknown, (void**)&pThis); */ uiManager->ActivateObject(NULL, GetUnknown()); *result = 0; return S_OK; }
LRESULT CPageDesignerApp::OnFileNew(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled) { CNewDocumentDlg dlg; dlg.m_numPages = 1; dlg.m_pageWidth = ConvertSpecifiedValueToUserUnit(UNIT_PT, 612); dlg.m_pageHeight = ConvertSpecifiedValueToUserUnit(UNIT_PT, 792); dlg.m_marginLeft = ConvertSpecifiedValueToUserUnit(UNIT_PT, 36); dlg.m_marginRight = ConvertSpecifiedValueToUserUnit(UNIT_PT, 36); dlg.m_marginTop = ConvertSpecifiedValueToUserUnit(UNIT_PT, 36); dlg.m_marginBottom = ConvertSpecifiedValueToUserUnit(UNIT_PT, 36); dlg.m_columnNumber = 1; dlg.m_columnGutter = ConvertSpecifiedValueToUserUnit(UNIT_PT, 12); dlg.m_facingPages = TRUE; if (dlg.DoModal(GetMainHwnd(), NULL) == IDOK) { CComObject<CPDDocument>* pDocument; CComObject<CPDDocument>::CreateInstance(&pDocument); if (pDocument) { pDocument->AddRef(); pDocument->m_pageWidth = dlg.m_pageWidth; pDocument->m_pageHeight = dlg.m_pageHeight; pDocument->m_marginTop = dlg.m_marginTop; pDocument->m_marginBottom = dlg.m_marginBottom; pDocument->m_marginInside = dlg.m_marginLeft; pDocument->m_marginOutside = dlg.m_marginRight; pDocument->m_columnNumber = dlg.m_columnNumber; pDocument->m_columnGutter = dlg.m_columnGutter; pDocument->m_facingPages = dlg.m_facingPages? VARIANT_TRUE: VARIANT_FALSE; WCHAR str[256]; swprintf(str, L"Untitled%d.pddoc", ++m_nextDocumentIndex); pDocument->m_fileTitle = str; pDocument->NewDocument(); // Init (?) pDocument->CreatePages(dlg.m_numPages); pDocument->ShowViews(); // CComQIPtr<IUIManager> uiManager = m_frame; // CComQIPtr<IPDDocument> document = pDocument; // CComPtr<IUnknown> _this; // QueryInterface(IID_IUnknown, (void**)&_this); //uiManager->ActivateObject(GetUnknown(), document); } } #if 0 HINSTANCE hLib = LoadLibrary("C:\\mmsx\\mmstudioplugins\\DOMCOREMOD.dll"); if (hLib) { HTMLModalDialogProc HTMLModalDialog = (HTMLModalDialogProc)GetProcAddress(hLib, "HTMLModalDialog"); if (HTMLModalDialog) { CComQIPtr<IDOMDocument> xmldoc; xmldoc.CoCreateInstance(CLSID_LDocument); xmldoc->put_async(VARIANT_FALSE); VARIANT_BOOL success; xmldoc->loadXML(L"<newdocument/>", &success); CComQIPtr<IDOMElement> element; xmldoc->get_documentElement(&element); WCHAR buf[64]; swprintf(buf, L"%d", 1); element->setAttribute(L"pagesnum", buf); swprintf(buf, L"%d", 1); element->setAttribute(L"columnsnum", buf); swprintf(buf, L"%dpt", 1); element->setAttribute(L"columnsgutter", buf); _variant_t arg = (IDispatch*)element.p; _variant_t result; HTMLModalDialog(GetMainHwnd(), L"C:\\MMStudio\\pd_newdocument.html", &arg, L"", &result); CComObject<CPDDocument>* pDocument; CComObject<CPDDocument>::CreateInstance(&pDocument); if (pDocument) { pDocument->AddRef(); pDocument->NewDocument(); // Init (?) pDocument->m_pageWidth = 200; pDocument->m_pageHeight = 400; pDocument->CreatePages(4); pDocument->ShowViews(); CComQIPtr<IUIManager> uiManager = m_frame; CComQIPtr<IPDDocument> document = pDocument; CComPtr<IUnknown> _this; QueryInterface(IID_IUnknown, (void**)&_this); uiManager->ActivateObject(_this, document); } } else { MessageBox(GetMainHwnd(), "Couldn't find proc", "PageDesigner", MB_OK); } FreeLibrary(hLib); } else { MessageBox(GetMainHwnd(), "Couldn't load library", "PageDesigner", MB_OK); } #endif #if 0 CComObject<CESvgDocument>* pDocument; CComObject<CESvgDocument>::CreateInstance(&pDocument); pDocument->AddRef(); if (pDocument != NULL) { pDocument->NewDocument(); pDocument->ShowViews(); CComPtr<IUnknown> unk; pDocument->QueryInterface(IID_IUnknown, (void**)&unk); m_frame->ActivateObject(unk); } #endif return 0; }