. 3. . C++Builder 3.0,  "/"  Internet
STDMETHODIMP TMyRDMImpl::Login(BSTR username, BSTR password)
{ try
{
}
catch(Exception &e)
{
return Error(e.Message.c_str(), IID_IMyRDM);
}
return S_OK;
};
     : STDMETHODIMP TMyRDMImpl::Login(BSTR username,   BSTR password)
{ try
{
m_DataModule->Database1->Connected=false; m_DataModule->Database1->Params->
Values.[ "Password" ]=password; m_DataModule->Database1->Params->
Values["User Name"]=username; m_DataModule->Database1->Connected=true; m_DataModule->Table1 ->0pen(); m_DataModule->Table2->Open();
}
catch(Exception &e)
{
return Error(e.Message.c_str()
}
return S_OK;
};
    m_DataModule - ,    IDataBrokerlmpl, . .    
.
 ,   h- ,    ,      : HRESULT  /*[VT_HRESULT:0]*/    Login(BSTR username/*[in]*/,BSTR password/*[in]*/)
{
static _TDispID _dispid(*this, OLETEXT("Login"),
IID_IMyRDM);
      C++Builder 3.0
DISPID(3));
TAutoArgs<2> _args; _args[1] = username /*[VT_BSTR:0]*/; _args[2] = password /*[VT_BSTR:0]*/; return 01eFunction(_dispid, _args); }
    .
     .        ,     ,   TEdit   (. 8.31).
. 8.31.      
    ModalResult   mrOk,     PasswordChar  Edit2 - -  (, *).       h- ,    .
  ,     :
void _fastcall TForm2::Button1Click(TObject  *Sender)
{
Forml->ClientDataSet1->Close();
Forml->ClientDataSet2->Close();
Variant  svr=Form1->MIDASConnection1->AppServer;
svr.01eProcedure("Login",Edit1->Text,Edit2->Text);
//  Login()    ... Forml->ClientDataSet1->ProviderName="Table1"; Forml->ClientDataSet2-sProviderName="Table2"; Forml->ClientDataSet1->0pen(); Forml->ClientDataSet2->Open(); }
     .       h-        ,
198
199