2009-10-13 3 views
1

HTML 문서의 데이터를 구문 분석하는 데 사용한 응용 프로그램이 있습니다. 이 응용 프로그램은 IID_IPersistStreamInit에 대한 QueryInterface 메서드가 실패하기 시작한 이번 주까지 몇 년 동안 작동했습니다. QueryInterface에 대한 호출은 SUCCEEDED (hr) 테스트에 실패한 -2147467262를 반환합니다. 왜이 일을 그만 두겠습니까?IID_IPersistStreamInit에 대한 QueryInterface 메서드가 작동하지 않습니다.

감사합니다, 어떤 시점에서 웨이드

if (!myIE->IsValid()) 
    return; 

HRESULT hr; 
LPDISPATCH lpDispatch = NULL; 
LPOLECOMMANDTARGET lpOleCommandTarget = NULL; 
LPPERSISTSTREAM lpPersistStream = NULL; 

lpDispatch = myIE->GetHtmlDocument(); 

ASSERT(lpDispatch); 

if (lpDispatch == NULL) 
    AfxMessageBox("Couldn't get IHTMLDocument2 interface!");  
else 
{ 
    hr = lpDispatch->QueryInterface(IID_IPersistStreamInit, (void**) &lpPersistStream); 
    if (SUCCEEDED(hr) && lpPersistStream != NULL) 

답변

0

당신은 위의 코드를 실행하는?

  1. 약에 탐색 : 경우에 그것은 당신은 단지 다음 후 실행해야한다,하지있어 가지고 빈은 MSHTML은 전에 완료
  2. 탐색을 의미하는의 DocumentComplete 이벤트가 호출되어 있는지 확인합니다 제대로로드 계속 나아가 라.

그 다음에 만 스트림 인터페이스를 요청하는 것이 안전합니다. 자세한 내용은 Loading HTML content from a Stream을 참조하십시오.

이제이 모든 것이 알려지고 처리되면 다른 방향에서 해결책을 추구 할 수 있습니다. 오류 코드는 "해당 인터페이스가 지원되지 않습니다."를 의미합니다. 해당 인터페이스가 포함 된 구성 요소가 무엇인지 알아 낸 다음 다시 등록하십시오. 그러나 이것이 당신이 다루고있는 IE의 것들이다고해서, 설치가 엉망이라고 생각합니다.

+0

로컬 컴퓨터의 http://www.google.com/ 또는 HTML 문서와 같은 웹 페이지로 이동합니다. 페이지가로드 될 때까지 기다렸다가 버튼을 눌러 소스를 보거나 저장합니다. 시도한 모든 파일에서 QueryInterface 호출이 실패합니다. 아마도 IE 업데이트가 금요일과 월요일 사이에 내 컴퓨터에 푸시 된 것 같습니다. 이 프로그램을 위반했습니다. –

+0

GetHtmlDocument()에 대한 호출이 성공적이라고 추가해야합니다. –

+0

이것은 어리석은 일이긴하지만 여전히 - 일부 업데이트로 인해 IE가 내 워크 스테이션에서 작동하지 않습니다. 재부팅하면 해결됩니다. 문제가 발생한 후에 워크 스테이션을 다시 부팅 해 보셨습니까? – eran

관련 문제