Имеется код.
#include <stdio>
#include <iostream.h>
#include <wtypes.h>
#include <winsmcrd.h>
#include <winscard.h>
#include <ok.h>
#include <scardcl.h>
using namespace std;
int main(int argc, char* argv[])
{
        cout << "Start work\n";
        cin >> Z;
        LPSCARDCONTEXT hContext;
        SCARDCONTEXT    hSC;
        LONG            lReturn;
        [b]lReturn = SCardEstablishContext(SCARD_SCOPE_USER,
                                                                        NULL,
                                                                        NULL,
                                                                   &hSC);[/b]
        cout << "hSC =   " << hSC << "\n";
        cout << "lReturn =   " << lReturn << "\n";
        cin >> Z;
        if ( SCARD_S_SUCCESS != lReturn )
           {
           cout << "Failed SCardEstablishContext\n";
                cin >> Z;
                }
        else
        {
        LPTSTR          pmszReaders = NULL;
        LPTSTR          pReader;
        cout << "pmszReaders =    " << &pmszReaders << "\n";
        cout << "pReader =    " << &pReader << "\n";
        DWORD           cch = SCARD_AUTOALLOCATE;
        cin >> Z;
         lReturn = SCardListReaders(hSC,
                                                   NULL,
                                                   (LPTSTR)&pmszReaders,
                                                   &cch );
        cout << "pmszReaders =    " << &pmszReaders << "\n";
        cout << "cch =    " << &cch << "\n";
        cin >> Z;
        
        }
        return 0;
}
Выделенная функция почему-то упрямо возвращает ноль, хотя в справке такой вариант не предусмотрен (сама функция просто скопированна из соотв раздела в help-е), и похоже вообще не работает.
Подскажите пожалуста, с чем это может быть связано? Что я пропустил/сделал не так?