|
일단, Time, Type, Size property에 연동된 실체가 없습니다.
따라서 ...impl.cpp 상단에
long fSize;
BSTR fType;
DATE fTime;
전역 변수로 선언/정의하시고.
...impl.cpp파일에서 fSize 한 가지 예만 들자면 아래와 같이 해야 합니다.
STDMETHODIMP TWebDocLoaderImpl::get_Size(long* Value)
{
try
{
*Value = fSize;
}
catch(Exception &e)
{
return Error(e.Message.c_str(), IID_WebLoader);
}
return S_OK;
}
STDMETHODIMP TWebDocLoaderImpl::set_Size(long Value)
{
try
{
fSize=Value;
}
catch(Exception &e)
{
return Error(e.Message.c_str(), IID_WebLoader);
}
return S_OK;
}
일단 위와같이 세가지 property에 대해 모두 해주시면 오류는 발생하지 않습니다.
그리고, Get_Http_File(BSTR Url)에도 오류의 소지가 있을 수 있으므로 더 살펴보시고...
Open_Url(BSTR Url)이 이미 외부에 노출되어 있는 상태에서 Get_Http_File(BSTR Url)은 외부에 노출시킬 필요가 없습니다.
그리고 Get_Http_File(BSTR Url) 매서드 내부에 보면 중도에 return false;를 하고 있습니다.
false도 0이고 S_OK도 0입니다. 의도하신건지요?
만해 님이 쓰신 글 :
: 만해 님이 쓰신 글 :
: : 임문환 님이 쓰신 글 :
: : : ...impl.h 파일에 보면 DECLARE_PROGID 매크로가 있는데 그 매개변수에 있는 거 아닙니까?
: : :
: : : ProgID는 "타입라이브러리이름.CoClass이름"으로 지정되는 것같네요.
: : : 그리고 GUID로 찾으려면 CoClass의 GUID를 사용해야 합니다.
: : : 물론 이단계라면 이미 타입라이브러리 에디터에서 타입라이브러리를 등록(Register Type Library)했어야 하구요.
: : : 위 작업은 도스(또는 콘솔)에서 "regsvr32 해당ocx의경로와이름"으로도 합니다.
: : :
: : :
: : : 정상적으로 등록되어 있고 VB 프로그래밍이라면
: : : Dim obj
: : : dim proID as String
: : : 'proID=?
: : : Set obj = CreateObject(proID) //ASP라면 Server.CreateObject(progID)
: : : obj.someMethod(someParams)
: : : 로 사용하겠지요.
: :
: : The remote procedure call failed and did not execute.
: :
: : 흐흐 이런 메세지가 나오네요
: :
: : 호출에 실패를 했다고 하는데 뭐가 잘못된건지 쩝~
: :
:
: 소스하고 같이 올립니다.
:
: 이거 프로젝트인데 외부 유출 되도 될려나 모르겠네요 ㅋ ㅋ
:
: 여튼 넘 허접한 소스라서
:
: 아참 그리고 Wininet.lib 파일을 같이 프로젝트에 애드 시켜 줘야 합니다.
:
:
|