Please Enable JavaScript!
Gon[ Enable JavaScript ]

ASP Component 작성 나만의 표준작성방법

기타 언어/C# & MFC
반응형
2007-09-14 까지 추가한 테스트프로그램
[ 소스 다운로드]

각종 DB 관련 소스예제 (ADO,OLEDB,RDO)
[ 소스 다운로드 ]



MTS 지원을 위해 COM+ 체크한다. 모든 컴퍼넌트는 MTS 에서 관리할것이다.


오브젝트 추가하는 과정이다.



개체추가할때 옵션부분의 화면이다. 에러인터페이스를 쓰지위해 ISupportErrorInof 체크했다


1. 디버깅을위한 함수 객체 추가

위와같이 추가하게 되면 public ISupportErrorInfo 를 상속받게 된다.
class ATL_NO_VTABLE CTableStorage :
 public CComObjectRootEx<CComMultiThreadModel>,
 public CComCoClass<CTableStorage, &CLSID_TableStorage>,
 public ISupportErrorInfo,
 public IDispatchImpl<ITableStorage, &IID_ITableStorage, &LIBID_ASPComponentLib, /*wMajor =*/ 1, /*wMinor =*/ 0>
{

BEGIN_COM_MAP(CTableStorage)
 COM_INTERFACE_ENTRY(ITableStorage)
 COM_INTERFACE_ENTRY(IDispatch)
 COM_INTERFACE_ENTRY(ISupportErrorInfo)
END_COM_MAP()

다음과 같이 함수를 추가한다. 그럼 ASP 페이지에서 디버깅시에 상세디버깅정보가 출력되게 된다.
STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid);

STDMETHODIMP CTableStorage::InterfaceSupportsErrorInfo(REFIID riid)
{
 static const IID* arr[] =
 {
  &IID_ITableStorage
 };
 for (int i=0; i < sizeof(arr) / sizeof(arr[0]); i++)
 {
  if (InlineIsEqualGUID(*arr[i],riid))
   return S_OK;
 }
 return S_FALSE;
}

2. 에러체크를 위한 소스 간소화 매크로추가
#define SAFE_CALL(expression) { HRESULT hr; if ( FAILED(hr=expression)) \
        _com_issue_error(hr);}

3. ADO 를 사용하기위한 사전셋팅추가
// ADO 타입라이브러리를 추가한다
#import "C:\Program Files\Common Files\System\ado\msado15.dll" \
     no_namespace \
  rename("EOF", "adoEOF") // EOF 와 이름충돌이있으므로 바꾼다

// C++ string 객체사용, IADORecordBinding 사용위한 추가
#include <string>
#include <icrsint.h>

반응형
Posted by 녹두장군

댓글을 달아 주세요