/* ActiveX中的代码 */
long CFuYouCtrl::SetData(const VARIANT FAR& vData)
{
// TODO: Add your dispatch handler code here
void* pDest;
SafeArrayAccessData(vData.parray, &pDest);
memcpy(m_Fuyou, pDest, vData.parray->rgsabound[0].cElements);
SafeArrayUnaccessData(vData.parray);
Invalidate();
return 0;
}
long CFuYouCtrl::GetData(VARIANT FAR* pvData)
{
// TODO: Add your dispatch handler code here
pvData->vt = VT_UI1 | VT_ARRAY;
SAFEARRAYBOUND bound;
bound.cElements = strlen(m_Fuyou);
bound.lLbound = 0;
pvData->parray = SafeArrayCreate(VT_UI1, 1, &bound); // Create it
void* pDest;
SafeArrayAccessData(pvData->parray, &pDest);
memcpy(pDest, m_Fuyou, strlen(m_Fuyou)); // Copy into array
SafeArrayUnaccessData(pvData->parray);
return 0;
}
/* VC 调用的代码 */
void CFuyouTestDlg::OnButton1()
{
// TODO: Add your control notification handler code here
char fBuf[]="hello";
VARIANT varTemp;
varTemp.vt = VT_UI1 | VT_ARRAY;
SAFEARRAYBOUND bound;
bound.cElements = strlen(fBuf);
bound.lLbound = 0;
varTemp.parray = SafeArrayCreate(VT_UI1, 1, &bound); // Create it
void* pDest;
SafeArrayAccessData(varTemp.parray, &pDest);
memcpy(pDest, fBuf, strlen(fBuf)); // Copy into array
SafeArrayUnaccessData(varTemp.parray);
m_Fuyou.SetData(varTemp);
SafeArrayDestroy(varTemp.parray);
}
void CFuyouTestDlg::OnButton2()
{
// TODO: Add your control notification handler code here
char fBuf[256];
VARIANT varTemp;
m_Fuyou.GetData(&varTemp);
memcpy(fBuf,varTemp.parray->pvData,varTemp.parray->rgsabound[0].cElements);
fBuf[varTemp.parray->rgsabound[0].cElements]='/0';
MessageBox(fBuf);
SafeArrayDestroy(varTemp.parray);
}
/* BCB 调用的代码*/
void __fastcall TForm1::Button1Click(TObject *Sender)
{
char fBuf[]="hello";
VARIANT varTemp;
varTemp.vt = VT_UI1 | VT_ARRAY;
SAFEARRAYBOUND bound;
bound.cElements = strlen(fBuf);
bound.lLbound = 0;
varTemp.parray = SafeArrayCreate(VT_UI1, 1, &bound); // Create it
void* pDest;
SafeArrayAccessData(varTemp.parray, &pDest);
memcpy(pDest, fBuf, strlen(fBuf)); // Copy into array
SafeArrayUnaccessData(varTemp.parray);
FuYou1->SetData(varTemp);
SafeArrayDestroy(varTemp.parray);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
char fBuf[256];
VARIANT varTemp;
FuYou1->GetData(&varTemp);
memcpy(fBuf,varTemp.parray->pvData,varTemp.parray->rgsabound[0].cElements);
fBuf[varTemp.parray->rgsabound[0].cElements]='/0';
Edit1->Text = fBuf;
SafeArrayDestroy(varTemp.parray);
}
long CFuYouCtrl::SetData(const VARIANT FAR& vData)
{
// TODO: Add your dispatch handler code here
void* pDest;
SafeArrayAccessData(vData.parray, &pDest);
memcpy(m_Fuyou, pDest, vData.parray->rgsabound[0].cElements);
SafeArrayUnaccessData(vData.parray);
Invalidate();
return 0;
}
long CFuYouCtrl::GetData(VARIANT FAR* pvData)
{
// TODO: Add your dispatch handler code here
pvData->vt = VT_UI1 | VT_ARRAY;
SAFEARRAYBOUND bound;
bound.cElements = strlen(m_Fuyou);
bound.lLbound = 0;
pvData->parray = SafeArrayCreate(VT_UI1, 1, &bound); // Create it
void* pDest;
SafeArrayAccessData(pvData->parray, &pDest);
memcpy(pDest, m_Fuyou, strlen(m_Fuyou)); // Copy into array
SafeArrayUnaccessData(pvData->parray);
return 0;
}
/* VC 调用的代码 */
void CFuyouTestDlg::OnButton1()
{
// TODO: Add your control notification handler code here
char fBuf[]="hello";
VARIANT varTemp;
varTemp.vt = VT_UI1 | VT_ARRAY;
SAFEARRAYBOUND bound;
bound.cElements = strlen(fBuf);
bound.lLbound = 0;
varTemp.parray = SafeArrayCreate(VT_UI1, 1, &bound); // Create it
void* pDest;
SafeArrayAccessData(varTemp.parray, &pDest);
memcpy(pDest, fBuf, strlen(fBuf)); // Copy into array
SafeArrayUnaccessData(varTemp.parray);
m_Fuyou.SetData(varTemp);
SafeArrayDestroy(varTemp.parray);
}
void CFuyouTestDlg::OnButton2()
{
// TODO: Add your control notification handler code here
char fBuf[256];
VARIANT varTemp;
m_Fuyou.GetData(&varTemp);
memcpy(fBuf,varTemp.parray->pvData,varTemp.parray->rgsabound[0].cElements);
fBuf[varTemp.parray->rgsabound[0].cElements]='/0';
MessageBox(fBuf);
SafeArrayDestroy(varTemp.parray);
}
/* BCB 调用的代码*/
void __fastcall TForm1::Button1Click(TObject *Sender)
{
char fBuf[]="hello";
VARIANT varTemp;
varTemp.vt = VT_UI1 | VT_ARRAY;
SAFEARRAYBOUND bound;
bound.cElements = strlen(fBuf);
bound.lLbound = 0;
varTemp.parray = SafeArrayCreate(VT_UI1, 1, &bound); // Create it
void* pDest;
SafeArrayAccessData(varTemp.parray, &pDest);
memcpy(pDest, fBuf, strlen(fBuf)); // Copy into array
SafeArrayUnaccessData(varTemp.parray);
FuYou1->SetData(varTemp);
SafeArrayDestroy(varTemp.parray);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
char fBuf[256];
VARIANT varTemp;
FuYou1->GetData(&varTemp);
memcpy(fBuf,varTemp.parray->pvData,varTemp.parray->rgsabound[0].cElements);
fBuf[varTemp.parray->rgsabound[0].cElements]='/0';
Edit1->Text = fBuf;
SafeArrayDestroy(varTemp.parray);
}