Dodawanie obsługi przycisku Uruchom

Należy dodać funkcję obsługi dla przycisku Uruchom , utworzone w oknie dialogowym pliku zasobów.

Aby utworzyć obsługi przycisku Uruchom

Aby utworzyć obsługi, należy użyć następujących klas OLE DB konsumenta szablonu:

Każda z tych klas odpowiada obiektu COM w dostawcy.

Dodaj kod przedstawione poniżej. W tym kodzie obsługi obiektu CCommand przyjmuje klasy CProvider jako parametr szablonu. Ten parametr reprezentuje związki używane przez dostawcę do dostępu do danych.

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

void CTestProvDlg::OnRun()
{
   CCommandlt;CAccessor <CProvider> > tabeli;
   CDataSource źródła;
   CSession sesji;

Jeżeli (źródła.Open("MyProvider.MyProvider.1", null)! = wartość S_OK)
      powrotu;

Jeżeli (sesji.Open(source)! = wartość S_OK)
      powrotu;

Jeżeli (tabela.Otwórz (sesji, _T("c:\\public\\testprf2\\gloo.txt"))! = wartość S_OK)
      powrotu;

podczas (tabela.MoveNext() == wartość S_OK)
   {
      m_ctlString1.AddString(Table.szCommand);
      m_ctlString2.AddString(Table.szText);
   }
}

Obsługa używa trzech otwartych zaproszeń, pokazany poniżej, które odpowiadają trzy obiekty COM w dostawcy. Zlokalizuje dostawca przy użyciu swojego identyfikatora ProgID. Identyfikator ProgID można uzyskać z rejestru systemu albo zaglądając do dostawcy rgs pliku ( MyProvider.rgs dla prostych dostawcy przedstawione w wykonywaniu prostych dostawcy otwieraniu). Dostawca otwiera plik tekstowy o nazwie gloo.txt , który zawiera parzystą liczbę ciągów oddzielanych przez przewozu zwraca. Otwórz przekazuje ścieżki pliku do dostawcy jako ciąg dostawcy.

   jeżeli (źródła.Open("MyProvider.MyProvider.1", null)! = wartość S_OK)
      powrotu;

Jeżeli (sesji.Open(source)! = wartość S_OK)
      powrotu;

Jeżeli (tabela.Otwórz (sesji, _T("c:\\public\\testprf2\\gloo.txt"))! = wartość S_OK)
      Powrót

Do pobrania danych, wywołań obsługi table.MoveNext , jak pokazano poniżej. Gdy nie ma już więcej wierszy, Dostawca zwraca DB_S_ENDOFROWSET i pętli. Instrukcji pętli sterowania porównuje wartość zwracany na wartość S_OK. Jeśli kod używany makro SUCCEEDED , pętli byłoby kończy się ponieważ DB_S_ENDOFROWSET uważa się za udane kod zwrotny.

   podczas (tabela.MoveNext() == wartość S_OK)
   {
      m_ctlString1.AddString(Table.szCommand);
      m_ctlString2.AddString(Table.szText);
   }

Konsument jest gotowy do badania z dostawcą proste (zbudowany w wykonywaniu prostych dostawcy otwieraniu).

Następny temat pokazuje, jak zmodyfikować konsumentów do użytku z rozszerzonego dostawcy implementującą interfejs IRowsetLocate.

Wróć do wykonania OLE DB szablonu konsumentów

Index