고수님들 안녕하세요.
QnA게시판을 통해서 로그인후 데이터를 읽어오고 있습니다.
순서가 아래와 같습니다.
1. web login
2. document확인후 인증 처리
1번에서 처리 시간이 걸리는것 같아 navigate를 호출후 아래와 같이 시간을 기다리는 처리를 하였습니다.
while(webLogin->Busy) Application->ProcessMessages();
2번에서 webLoginDocumentComplete 이벤트에서 아래의 소스코드로 코딩하였습니다.
TCppWebBroswer에는 출력값이 표시되는데 이걸 HTMLElement로 읽어들일때
재대로 값이 들어오지 않습니다.
사용하는 툴은 2009입니다.
아래의 코드에서 HTMLElement->get_innerHTML(&HTML); <-- 에러 엑세스 바이얼레션이 발생
에서 에러가 발생합니다.
브레이크 포이트로 다시 테스트 해본결과
hr = pHTMLDocument->get_body(&HTMLElement); <-- 에러 발생
hr = S_OK가 나왔지만
HTMLElement = NULL 입니다.
ㅠ_ㅠ;;
IDispatch * Document;
Document = webLogin->Document;
IHTMLElement* HTMLElement;
IHTMLDocument2* pHTMLDocument;
HRESULT hr;
WideString HTML= ""; // <- w_char* 스트링입니다.
WideString Text= "";
hr = Document->QueryInterface(IID_IHTMLDocument2,(void**)&pHTMLDocument );
if ( hr == S_OK )
{
hr = pHTMLDocument->get_body(&HTMLElement); <-- 에러 발생
if ( hr == S_OK )
{
HTMLElement->get_innerHTML(&HTML); <-- 에러 엑세스 바이얼레션이 발생
HTMLElement->get_innerText(&Text);
HTMLElement->Release();
}
pHTMLDocument->Release();
}
Memo1->Lines->Clear();
Memo1->Lines->Add(HTML);
|