各位大神帮下忙,为什么小弟我得到的是指针而不是值

各位大神帮下忙,为什么我得到的是指针而不是值?

STDMETHODIMP Cgkztrw::PinReportPressed(char* cpKey,SHORT timeOut,BSTR* pwd,SHORT* val)
{
// TODO: 在此添加实现代码
HINSTANCE hDLL;//dll句柄
//HANDLE hCom;//串口句柄
pinReportPressed _rpwd;//声明函数指针
hDLL=LoadLibrary(L"ZT_EPP_API.dll");
ofstream fout;
fout.open("c:\\test.log",ios::app);
if(hDLL==NULL){
FreeLibrary(hDLL);
}else{
_rpwd=(pinReportPressed)GetProcAddress(hDLL,"ZT_EPP_PinReportPressed");
if(_rpwd!=NULL){
_rpwd(cpKey,timeOut);
fout<<"返回值的结果为:"<<*val<<".........password value..........."<<cpKey<<endl;
CComBSTR passwd=_com_util::ConvertStringToBSTR(cpKey);
pwd=&passwd;
fout<<"BSTR*的结果为:"<<pwd<<endl;
return S_OK;
}else{
fout<<"PinReportPressed函数指针为空!"<<endl;
}
}
return S_OK;
}

我的这段函数代码中,pwd的结果为什么是一个指针,而不是值?求各位大神帮帮忙解答下,谢谢了!

------解决方案--------------------
BSTR* 是二级指针
------解决方案--------------------
这样试试
fout<<"BSTR*的结果为:"<<(BSTR)passwd<<endl;

编译不过就这样

fout<<"BSTR*的结果为:"<<(WCHAR *)(BSTR)passwd<<endl;
------解决方案--------------------
pwd=&passwd;
不明显是指针么?问题的关键应该是: 是一级指针还是二级指针等等?和值有什么关系
------解决方案--------------------
1.代码风格太糟糕,看不清
2.不知道你在说啥,代码不完整
------解决方案--------------------
探讨

CComBSTR passwd=_com_util::ConvertStringToBSTR(cpKey);
*pwd=passwd;
fout<<"BSTR*的结果为:"<<*pwd<<endl;
就是这样的,passwd是一个CComBSRT的值,pwd是一个[out] BSTR* pwd类型的指针,现在我需要把输出*pwd的值,可是还是输出的指针,而不是值,可以加我QQ详聊下吗!
……

------解决方案--------------------
如果是JS,那肯定得到的是指针啊,pwd会根据你的函数参数类型自动转换的