실행 단추 처리기 추가

대화 상자 리소스 파일에서 만든 실행 단추에 대 한 처리기 함수를 추가 해야 합니다.

실행 단추 처리기를 만들려면

처리기를 만들려면 다음 OLE DB 소비자 템플릿 클래스를 사용 해야 합니다.:

이러한 각 클래스는 공급자에서 COM 개체에 해당。

아래 코드를 추가 합니다. 이 처리기 코드에서는 CCommand 개체 템플릿 매개 변수로 CProvider 클래스를 걸립니다. 이 매개 변수는 공급자가 데이터에 액세스 하는 데 사용 하는 바인딩을 나타냅니다.

///////////////////////////////////////////////////////////////////////
/ / TestProvDlg.cpp

void CTestProvDlg::OnRun()
{
   CCommandlt;CAccessor <CProvider> > 테이블;
   CDataSource 원본;
   CSession 세션;

경우 (원본.Open("MyProvider.MyProvider.1", NULL)! = S_OK)
      반환;

경우 (세션.Open(source)! = S_OK)
      반환;

경우 (테이블입니다.오픈 (세션, _T("c:\\public\\testprf2\\gloo.txt"))! = S_OK)
      반환;

동안 (테이블입니다.MoveNext() = S_OK)
   {
      m_ctlString1.AddString(table.szCommand);
      m_ctlString2.AddString(table.szText);
   }
}

처리기는 공급자에서 COM 개체를 세 개에 해당 하는 아래, 세 열 호출 사용 합니다. 공급자를 ProgID를 사용 하 여 찾습니다. 시스템 레지스트리 또는 공급자에서 ProgID 를 가져올 수 rgs 파일 ( MyProvider.rgs 단순한 읽기 전용 공급자 구현에 나와 간단한 공급자에 대 한). 공급자 라는 텍스트 파일을 열고 gloo.txt , 짝수 캐리지 구분 하는 문자열을 포함 하는 반환 합니다. 오픈 파일 경로 공급자를 전달 공급자 문자열。

   경우 (원본.Open("MyProvider.MyProvider.1", NULL)! = S_OK)
      반환;

경우 (세션.Open(source)! = S_OK)
      반환;

경우 (테이블입니다.오픈 (세션, _T("c:\\public\\testprf2\\gloo.txt"))! = S_OK)
      반환

처리기 호출 데이터를 가져올 table.MoveNext 아래에 보이는 바와 같이 합니다. 더 많은 행이 없을 경우 공급자가 DB_S_ENDOFROWSET 을 반환 하 고 루프 종료 합니다. 루프 제어 문을 S_OK를 반환 값을 비교합니다. DB_S_ENDOFROWSET 성공적인 반환 코드 간주 됩니다 때문에 루프 코드 SUCCEEDED 매크로 사용 하는 경우 종료 하지 것 이다。

   동안 (테이블입니다.MoveNext() = S_OK)
   {
      m_ctlString1.AddString(table.szCommand);
      m_ctlString2.AddString(table.szText);
   }

소비자 단순 공급자 ( 단순한 읽기 전용 공급자 구현에서 건설)을 테스트할 준비가 되었습니다.

다음 항목 에서는는 향상 된 공급자는 IRowsetLocate 인터페이스를 구현 하는 사용 하기 위해 소비자를 수정 하는 방법을 보여 줍니다.

OLE DB 템플릿 소비자를 구현 하는 것을 다시

Index