本文整理汇总了C++中IPersistStreamInit类的典型用法代码示例。如果您正苦于以下问题:C++ IPersistStreamInit类的具体用法?C++ IPersistStreamInit怎么用?C++ IPersistStreamInit使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了IPersistStreamInit类的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SetTransparent
void IEHtmlWin::CreateBrowser()
{
SetTransparent(255);
HRESULT hret;
IUnknown *p;
// Get IUnknown Interface
hret = CoCreateInstance(CLSID_WebBrowser, NULL, CLSCTX_ALL, IID_IUnknown, (void**)(&p));
wxASSERT(SUCCEEDED(hret));
// Get IOleObject interface
hret = p->QueryInterface(IID_IViewObject, (void**)(&m_viewObject));
wxASSERT(SUCCEEDED(hret));
hret = p->QueryInterface(IID_IOleObject, (void**)(&m_oleObject));
wxASSERT(SUCCEEDED(hret));
FrameSite * c = new FrameSite(this);
c->AddRef();
DWORD dwMiscStatus;
m_oleObject->GetMiscStatus(DVASPECT_CONTENT, &dwMiscStatus);
bool m_bSetClientSiteFirst = false;
if (dwMiscStatus & OLEMISC_SETCLIENTSITEFIRST)
{
m_bSetClientSiteFirst = true;
}
bool m_bVisibleAtRuntime = true;
if (dwMiscStatus & OLEMISC_INVISIBLEATRUNTIME)
{
m_bVisibleAtRuntime = false;
}
if (m_bSetClientSiteFirst) m_oleObject->SetClientSite(c->m_IOleClientSite);
IPersistStreamInit * psInit = NULL;
hret = p->QueryInterface(IID_IPersistStreamInit, (void**)(&psInit));
if (SUCCEEDED(hret) && psInit != NULL) {
hret = psInit->InitNew();
wxASSERT(SUCCEEDED(hret));
}
// Get IOleInPlaceObject interface
hret = p->QueryInterface(IID_IOleInPlaceObject, (void**)(&m_oleInPlaceObject));
assert(SUCCEEDED(hret));
hret = m_oleInPlaceObject->GetWindow(&m_oleObjectHWND);
wxASSERT(SUCCEEDED(hret));
::SetActiveWindow(m_oleObjectHWND);
int w, h;
GetSize(&w, &h);
RECT posRect;
posRect.left = 0;
posRect.top = 0;
posRect.right = w;
posRect.bottom = h;
m_oleInPlaceObject->SetObjectRects(&posRect, &posRect);
if (m_bVisibleAtRuntime) {
hret = m_oleObject->DoVerb(OLEIVERB_INPLACEACTIVATE, NULL,
c->m_IOleClientSite, 0, (HWND)GetHWND(), &posRect);
}
if (!m_bSetClientSiteFirst) m_oleObject->SetClientSite(c->m_IOleClientSite);
// Get IWebBrowser2 Interface
hret = p->QueryInterface(IID_IWebBrowser2, (void**)(&m_webBrowser));
assert(SUCCEEDED(hret));
IConnectionPointContainer * cpContainer;
hret = p->QueryInterface(IID_IConnectionPointContainer, (void**)(&cpContainer));
assert(SUCCEEDED(hret));
hret = cpContainer->FindConnectionPoint(DIID_DWebBrowserEvents2, &m_connectionPoint);
assert(SUCCEEDED(hret));
m_connectionPoint->Advise(c->m_DWebBrowserEvents2, &m_adviseCookie);
cpContainer->Release();
p->Release();
m_webBrowser->put_MenuBar(VARIANT_FALSE);
m_webBrowser->put_AddressBar(VARIANT_FALSE);
m_webBrowser->put_StatusBar(VARIANT_FALSE);
m_webBrowser->put_ToolBar(VARIANT_FALSE);
m_webBrowser->put_RegisterAsBrowser(VARIANT_TRUE);
m_webBrowser->put_RegisterAsDropTarget(VARIANT_TRUE);
}
示例2: XML_GetDocument
static cgMSXML::IXMLDocument* XML_GetDocument(
CGT_CDiagMsg* pdm,
CG_CIECFront* pFront,
const TCHAR* pszXMLFile,
__int64* pOnOpenLastWriteFileTime
)
{
cgMSXML::IXMLDocument *pDoc = NULL;
IStream *pStm = NULL;
IPersistStreamInit *pPSI = NULL;
HRESULT hr;
// Create an empty XML document.
hr = CoCreateInstance(cgMSXML::CLSID_XMLDocument, NULL, CLSCTX_INPROC_SERVER,
cgMSXML::IID_IXMLDocument, (void**)&pDoc);
if(FAILED(hr) || !pDoc)
goto fatalError;
//try to open the disk or lib file:
if(!LoadFileToIStream(pdm, pFront, pszXMLFile, &pStm, pOnOpenLastWriteFileTime))
return NULL;
assert(pStm);
// Get the IPersistStreamInit interface to the XML doc.
hr = pDoc->QueryInterface(IID_IPersistStreamInit, (void **)&pPSI);
if(FAILED(hr) || !pPSI)
goto fatalError;
// Init the XML doc from the stream.
hr = pPSI->Load(pStm);
if(FAILED(hr))
{
// Print error information !
cgMSXML::IXMLError *pXMLError = NULL ;
cgMSXML::_xml_error xmle;
hr = pPSI->QueryInterface(cgMSXML::IID_IXMLError, (void **)&pXMLError);
if(FAILED(hr) || !pXMLError)
goto fatalError;
hr = pXMLError->GetErrorInfo(&xmle);
if(FAILED(hr))
goto fatalError;
pXMLError->Release();
//different error message formats
//if found string is ??? xmle._pszExpected seem to be a
//preformated message ready to dump
if(!wcscmp(xmle._pszFound, L"???"))
{
pdm->msg3(CG_E_XML_PARSE_ERROR, NULL, pszXMLFile,
pdm->jot1()<<((int)xmle._nLine), pdm->jot2()<<xmle._pszExpected);
}
else
{
pdm->msg3(CG_E_XML_PARSE_ERROR, NULL, pszXMLFile,
pdm->jot1()<<((int)xmle._nLine), pdm->jot2()<<xmle._pszFound);
}
SysFreeString(xmle._pszFound);
SysFreeString(xmle._pszExpected);
SysFreeString(xmle._pchBuf);
pDoc->Release();
pDoc = NULL;
}
// Release any used interfaces.
if(pPSI)
pPSI->Release();
if(pStm)
pStm->Release();
return pDoc;
fatalError:
pdm->sysErr(hr, NULL, _T("CLSID_XMLDocument for file: "), pszXMLFile);
return NULL;
}
示例3: ReleaseControl
bool CActiveXUI::DoCreateControl()
{
ReleaseControl();
// At this point we'll create the ActiveX control
m_bCreated = true;
IOleControl* pOleControl = NULL;
HRESULT Hr = -1;
if( !m_sModuleName.IsEmpty() ) {
HMODULE hModule = ::LoadLibrary((LPCTSTR)m_sModuleName);
if( hModule != NULL ) {
IClassFactory* aClassFactory = NULL;
DllGetClassObjectFunc aDllGetClassObjectFunc = (DllGetClassObjectFunc)::GetProcAddress(hModule, "DllGetClassObject");
Hr = aDllGetClassObjectFunc(m_clsid, IID_IClassFactory, (LPVOID*)&aClassFactory);
if( SUCCEEDED(Hr) ) {
Hr = aClassFactory->CreateInstance(NULL, IID_IOleObject, (LPVOID*)&pOleControl);
}
aClassFactory->Release();
}
}
if( FAILED(Hr) ) {
Hr = ::CoCreateInstance(m_clsid, NULL, CLSCTX_ALL, IID_IOleControl, (LPVOID*)&pOleControl);
}
ASSERT(SUCCEEDED(Hr));
if( FAILED(Hr) ) return false;
pOleControl->QueryInterface(IID_IOleObject, (LPVOID*) &m_pUnk);
pOleControl->Release();
if( m_pUnk == NULL ) return false;
// Create the host too
m_pControl = new CActiveXCtrl();
m_pControl->m_pOwner = this;
// More control creation stuff
DWORD dwMiscStatus = 0;
m_pUnk->GetMiscStatus(DVASPECT_CONTENT, &dwMiscStatus);
IOleClientSite* pOleClientSite = NULL;
m_pControl->QueryInterface(IID_IOleClientSite, (LPVOID*) &pOleClientSite);
CSafeRelease<IOleClientSite> RefOleClientSite = pOleClientSite;
// Initialize control
if( (dwMiscStatus & OLEMISC_SETCLIENTSITEFIRST) != 0 ) m_pUnk->SetClientSite(pOleClientSite);
IPersistStreamInit* pPersistStreamInit = NULL;
m_pUnk->QueryInterface(IID_IPersistStreamInit, (LPVOID*) &pPersistStreamInit);
if( pPersistStreamInit != NULL ) {
Hr = pPersistStreamInit->InitNew();
pPersistStreamInit->Release();
}
if( FAILED(Hr) ) return false;
if( (dwMiscStatus & OLEMISC_SETCLIENTSITEFIRST) == 0 ) m_pUnk->SetClientSite(pOleClientSite);
// Grab the view...
Hr = m_pUnk->QueryInterface(IID_IViewObjectEx, (LPVOID*) &m_pControl->m_pViewObject);
if( FAILED(Hr) ) Hr = m_pUnk->QueryInterface(IID_IViewObject2, (LPVOID*) &m_pControl->m_pViewObject);
if( FAILED(Hr) ) Hr = m_pUnk->QueryInterface(IID_IViewObject, (LPVOID*) &m_pControl->m_pViewObject);
// Activate and done...
m_pUnk->SetHostNames(OLESTR("UIActiveX"), NULL);
if( m_pManager != NULL ) m_pManager->SendNotify((CControlUI*)this, _T("showactivex"), 0, 0, false);
if( (dwMiscStatus & OLEMISC_INVISIBLEATRUNTIME) == 0 ) {
Hr = m_pUnk->DoVerb(OLEIVERB_INPLACEACTIVATE, NULL, pOleClientSite, 0, m_pManager->GetPaintWindow(), &m_rcItem);
//::RedrawWindow(m_pManager->GetPaintWindow(), &m_rcItem, NULL, RDW_INVALIDATE | RDW_UPDATENOW | RDW_ERASE | RDW_INTERNALPAINT | RDW_FRAME);
}
IObjectWithSite* pSite = NULL;
m_pUnk->QueryInterface(IID_IObjectWithSite, (LPVOID*) &pSite);
if( pSite != NULL ) {
pSite->SetSite(static_cast<IOleClientSite*>(m_pControl));
pSite->Release();
}
return SUCCEEDED(Hr);
}
示例4: CreateBrowserViewer
//.........这里部分代码省略.........
L"}\n"
L"</style>\n"
L"</head>\n"
L"<body>\n";
UnicodeString Br = "<br/>\n";
AddPara(ThirdParty, LoadStr(ABOUT_THIRDPARTY_HEADER));
AddPara(ThirdParty,
FMTLOAD(PUTTY_BASED_ON, (LoadStr(PUTTY_VERSION))) + Br +
LoadStr(PUTTY_COPYRIGHT) + Br +
CreateLink(LoadStr(PUTTY_LICENSE_URL), LoadStr(ABOUT_THIRDPARTY_LICENSE)) + Br +
CreateLink(LoadStr(PUTTY_URL)));
#ifndef NO_FILEZILLA
UnicodeString OpenSSLVersionText = GetOpenSSLVersionText();
CutToChar(OpenSSLVersionText, L' ', true); // "OpenSSL"
UnicodeString OpenSSLVersion = CutToChar(OpenSSLVersionText, L' ', true);
CutToChar(OpenSSLVersionText, L' ', true); // day
CutToChar(OpenSSLVersionText, L' ', true); // month
UnicodeString OpenSSLYear = CutToChar(OpenSSLVersionText, L' ', true);
AddPara(ThirdParty,
FMTLOAD(OPENSSL_BASED_ON, (OpenSSLVersion)) + Br +
FMTLOAD(OPENSSL_COPYRIGHT2, (OpenSSLYear)) + Br +
CreateLink(LoadStr(OPENSSL_URL)));
AddPara(ThirdParty,
LoadStr(FILEZILLA_BASED_ON2) + Br +
LoadStr(FILEZILLA_COPYRIGHT2) + Br +
CreateLink(LoadStr(FILEZILLA_URL)));
#endif
AddPara(ThirdParty,
FMTLOAD(NEON_BASED_ON, (NeonVersion())) + Br +
LoadStr(NEON_COPYRIGHT) + Br +
CreateLink(LoadStr(NEON_URL)));
#define EXPAT_LICENSE_URL L"license:expat"
AddPara(ThirdParty,
FMTLOAD(EXPAT_BASED_ON, (ExpatVersion())) + Br +
CreateLink(EXPAT_LICENSE_URL, LoadStr(ABOUT_THIRDPARTY_LICENSE)) + Br +
CreateLink(LoadStr(EXPAT_URL)));
AddBrowserLinkHandler(ThirdPartyWebBrowser, EXPAT_LICENSE_URL, ExpatLicenceHandler);
#ifndef NO_COMPONENTS
AddPara(ThirdParty,
FMTLOAD(ABOUT_TOOLBAR2000, (Toolbar2000Version)) + Br +
LoadStr(ABOUT_TOOLBAR2000_COPYRIGHT) + Br +
CreateLink(LoadStr(ABOUT_TOOLBAR2000_URL)));
AddPara(ThirdParty,
FMTLOAD(ABOUT_TBX, (TBXVersionString)) + Br +
LoadStr(ABOUT_TBX_COPYRIGHT) + Br +
CreateLink(LoadStr(ABOUT_TBX_URL)));
AddPara(ThirdParty,
LoadStr(ABOUT_FILEMANAGER) + Br +
LoadStr(ABOUT_FILEMANAGER_COPYRIGHT));
#endif
UnicodeString JclVersion =
FormatVersion(JclVersionMajor, JclVersionMinor, JclVersionRelease);
AddPara(ThirdParty,
FMTLOAD(ABOUT_JCL, (JclVersion)) + Br +
CreateLink(LoadStr(ABOUT_JCL_URL)));
AddPara(ThirdParty,
LoadStr(ABOUT_PNG) + Br +
LoadStr(ABOUT_PNG_COPYRIGHT) + Br +
CreateLink(LoadStr(ABOUT_PNG_URL)));
ThirdParty +=
L"</body>\n"
L"</html>\n";
std::unique_ptr<TMemoryStream> ThirdPartyStream(new TMemoryStream());
UTF8String ThirdPartyUTF8 = UTF8String(ThirdParty);
ThirdPartyStream->Write(ThirdPartyUTF8.c_str(), ThirdPartyUTF8.Length());
ThirdPartyStream->Seek(0, 0);
// For stream-loaded document, when set only after loading from OnDocumentComplete,
// browser stops working
SetBrowserDesignModeOff(ThirdPartyWebBrowser);
TStreamAdapter * ThirdPartyStreamAdapter = new TStreamAdapter(ThirdPartyStream.get(), soReference);
IPersistStreamInit * PersistStreamInit = NULL;
if (ALWAYS_TRUE(ThirdPartyWebBrowser->Document != NULL) &&
SUCCEEDED(ThirdPartyWebBrowser->Document->QueryInterface(IID_IPersistStreamInit, (void **)&PersistStreamInit)) &&
ALWAYS_TRUE(PersistStreamInit != NULL))
{
PersistStreamInit->Load(static_cast<_di_IStream>(*ThirdPartyStreamAdapter));
}
}