void CTestKataloguDlg::OnRefresh() 
{
    CString         oIDProduktu;         // Tekst z pl edycyjnych w oknie
                                         // dialogowym.
    BSTR            bstrIDProduktu;      // Skonwertowany IDProduktu.
    CString         oNazwaProduktu;      // Skonwertowana nazwa produktu.
    BSTR            bstrNazwaProduktu;   // Nazwa produktu z bazy danych.
    int             iDostepnosc;         // Liczba dostpnych towarw.
    CString         oDostepnosc;         // Skonwertowana liczba dostpnych
                                         // towarw.
    CURRENCY        currCena;            // Koszt produktu.
    BSTR            bstrCena;            // BSTR do konwersji ceny.
    CString         oCena;               // Skonwertowana cena.
    IZadanieZamowienia*  m_pDoTest;      // Wskanik interfejsu
                                         // IZadanieZamowienia
    HRESULT         hr;                  // Wynik dziaania
    CString         oDirection;          // Kierunek ruchu po bazie danych

    // Konwertuj pierwsz wprowadzon warto do BSTR.
    m_productID.GetWindowText(oIDProduktu);
    bstrProductID = oProductID.AllocSysString();

    // Inicjalizuj wskanik interfejsu.
    m_pDoTest = NULL;

    // Inicjalizuj rodowisko COM.
    CoInitialize(NULL);

    // Utwrz egzemplarz obiektu.
    hr = CoCreateInstance(CLSID_ZadanieZamowienia, 
    			  NULL, 
                          CLSCTX_ALL, 
                          IID_IZadanieZamowienia, 
                          (void**)&m_pDoTest);

    // Wyjd, jeli tworzenie nie powiodo si.
    if (FAILED(hr))
    {
        // Upewnij si, czy klasa jest zarejestrowana.
        if (hr == REGDB_E_CLASSNOTREG)
            AfxMessageBox("Klasa DoTest nie jest zarejestrowana");
        // Upewnij si, czy mona agregowa klas.
        if (hr == CLASS_E_NOAGGREGATION)
            AfxMessageBox("Klasa nie moe by agregowana");
        // Wywietl oglny komunikat bdu i wyjd.
        AfxMessageBox("Tworzenie obiektu nie powiodo si");
        return;
    }

    // Odwie informacje o aktualnym rekordzie.
    oDirection = "Refresh";
    hr = m_pDoTest->PobierzTowarKatalog(&bstrIDProduktu, 
                                        oDirection.AllocSysString(), 
                                        &bstrNazwaProduktu, 
                                        &currCena, 
                                        &iDostepnosc);
    if (FAILED(hr))
        AfxMessageBox(Sprawdzenie katalogu nie powiodo si");
    // Wywietl uzyskan nazw produktu.
    oNazwaProduktu = bstrNazwaProduktu;
    m_nazwaProduktu.SetWindowText(oNazwaProduktu);

    // Wywietl wynikow cen.
    VarBstrFromCy(currCena, 
                  0, 
                  LOCALE_NOUSEROVERRIDE, 
                  &bstrCena);
    oCena = bstrCena;
    m_cena.SetWindowText(oCena);

    // Wywietl uzyskan dostpno.
    itoa(iDostepnosc, oDostepnosc.GetBuffer(10), 10);
    oDostepnosc.ReleaseBuffer(-1);
    m_dostepnosc.SetWindowText(oDostepnosc);

    // Zaktualizuj warto IDProduktu.
    oIDproduktu = bstrIDProduktu;
    m_IDProduktu.SetWindowText(oIDProduktu);

    // Wycz rodowisko COM.
    CoUninitialize();
}
