コード例 #1
0
void CDHtmlMainDialog::ChangeTheme(CString ThemeName)
{
	CComPtr<IHTMLDocument2> pHtmlDoc;
	CComPtr<IHTMLStyleSheet> pHtmlStyleSheet;
	CComPtr<IHTMLStyleSheetsCollection> pStyleSheetsCollection;

	HRESULT hr;
	CComBSTR bstr;
	CString cstr;
	LONG length;

	hr = GetDHtmlDocument(&pHtmlDoc);
	if(FAILED(hr)) return ;

	hr = pHtmlDoc->get_styleSheets(&pStyleSheetsCollection);
	if(FAILED(hr)) return ;

	hr = pStyleSheetsCollection->get_length(&length);
	if(FAILED(hr)) return ;

	VARIANT index;
	VariantInit(&index);
// by ordinal
	index.vt = VT_I4;
	index.intVal = 0;
// by name
//	index.vt = VT_BSTR;
//	index.bstrVal = L"StyleSheet";
	VARIANT dispatch;
	VariantInit(&dispatch);
	dispatch.vt = VT_DISPATCH;

	hr = pStyleSheetsCollection->item(&index, &dispatch);
	if(FAILED(hr)) return ;

	dispatch.pdispVal->QueryInterface(IID_IHTMLStyleSheet, (void **) &pHtmlStyleSheet);
	if(FAILED(hr)) return ;

	cstr.Format(_T("%s\\%s\\%s"), m_ThemeDir, ThemeName, MAIN_CSS_FILE_NAME);
	bstr = cstr;
	hr = pHtmlStyleSheet->put_href(bstr);
	if(FAILED(hr)) return ;

	VariantClear(&index);
	VariantClear(&dispatch);

#ifdef SUISHO_SHIZUKU_SUPPORT
	#ifdef KUREI_KEI_SUPPORT
		WritePrivateProfileString(_T("Setting"), _T("ThemeKureiKei"), ThemeName, m_Ini);
	#else
		WritePrivateProfileString(_T("Setting"), _T("ThemeShizuku"), ThemeName, m_Ini);
	#endif
#else
	WritePrivateProfileString(_T("Setting"), _T("Theme"), ThemeName, m_Ini);
#endif


	
}
コード例 #2
0
//获取JS脚本
bool CHTMLContainerDlg::GetJScript(CComPtr<IDispatch>& spDisp)
{
	HRESULT hr = S_OK;
	if (!m_spDoc) {
		hr = GetDHtmlDocument(&m_spDoc);
		ATLASSERT(SUCCEEDED(hr));
	}
	if (SUCCEEDED(hr)) {
		hr = m_spDoc->get_Script(&spDisp);
		ATLASSERT(SUCCEEDED(hr));
	}

	return SUCCEEDED(hr);
}
コード例 #3
0
void CHtmlCaretTestView::OnMovetoend()
{
	IHTMLDocument2 *pHTMLDocument2;
	if(!GetDHtmlDocument(&pHTMLDocument2))return;

	IDisplayServices *pDisplayServices;
	HRESULT hRes = pHTMLDocument2->QueryInterface(IID_IDisplayServices, reinterpret_cast<void**>(&pDisplayServices));
	if (FAILED(hRes))
		return;
	IDisplayPointer *pDisplayPointer;
	hRes = pDisplayServices->CreateDisplayPointer(&pDisplayPointer);
	if (FAILED(hRes))
		return;

	IMarkupServices *pMarkupServices;
	hRes = pDisplayServices->QueryInterface(IID_IMarkupServices, reinterpret_cast<void**>(&pMarkupServices));
	if (FAILED(hRes))
		return;

	IMarkupPointer *pMarkupPointer;
	hRes = pMarkupServices->CreateMarkupPointer(&pMarkupPointer);
	if (FAILED(hRes))
		return;

	IHTMLElement *pElement;
	pHTMLDocument2->get_body(&pElement);
	hRes = pMarkupPointer->MoveAdjacentToElement(pElement, ELEM_ADJ_BeforeEnd);
	if (FAILED(hRes))
		return;

	hRes = pDisplayPointer->MoveToMarkupPointer(pMarkupPointer, NULL);
	if (FAILED(hRes))
		return;

	IHTMLCaret *pHTMLCaret;
	hRes = pDisplayServices->GetCaret(&pHTMLCaret);
	if (FAILED(hRes))
		return;

	hRes = pHTMLCaret->MoveCaretToPointerEx(pDisplayPointer, TRUE, TRUE, CARET_DIRECTION_FORWARD);
	if (FAILED(hRes))
		return;
}