cpp部分内容:
STDMETHODIMP CLog::get_type(long *pVal)
{
// TODO: Add your implementation code here
*pVal = m_type;
return S_OK;
}STDMETHODIMP CLog::put_type(long newVal)
{
// TODO: Add your implementation code here
m_type = newVal; return S_OK;
}--------------------------------------------------------
idl:
interface ILog : IDispatch
{
[id(1), helpstring("method Test")] HRESULT Test([out, retval]long *pVal);
[propget, id(2), helpstring("property type")] HRESULT type([out, retval] long *pVal);
[propput, id(2), helpstring("property type")] HRESULT type([in] long newVal); };------------------------------------------
测试程序: ILog log; long test = 0; log.SetType(1000); test = log.GetType();
---------------------
说明: 编译通过,就是test无法赋值.
怎么回事? 谢谢,解决后马上给分!
STDMETHODIMP CLog::get_type(long *pVal)
{
// TODO: Add your implementation code here
*pVal = m_type;
return S_OK;
}STDMETHODIMP CLog::put_type(long newVal)
{
// TODO: Add your implementation code here
m_type = newVal; return S_OK;
}--------------------------------------------------------
idl:
interface ILog : IDispatch
{
[id(1), helpstring("method Test")] HRESULT Test([out, retval]long *pVal);
[propget, id(2), helpstring("property type")] HRESULT type([out, retval] long *pVal);
[propput, id(2), helpstring("property type")] HRESULT type([in] long newVal); };------------------------------------------
测试程序: ILog log; long test = 0; log.SetType(1000); test = log.GetType();
---------------------
说明: 编译通过,就是test无法赋值.
怎么回事? 谢谢,解决后马上给分!
解决方案 »
- rich edit中显示大量文本时如何获取滚动条的正确位置?
- 写个类怎么定时
- The ActiveX Control is not registered properly, or its type library version number is incorrect.
- vc操作office问题!
- 一个关于SetWindowsHookEx的问题,第一次发帖,大家给点面子回答一下啊!
- AfxGetApp()->m_pMainWnd->hwnd ,这是什么意思呀,还有CWnd::GetSafeHwnd() ?
- CStdioFile::ReadString()问题
- 我写了一个回调函数,来实现最小化所有窗口,以下是我的程序,可是不中,请分析一下!
- VC 怎么实现用HTTP REST和服务器端交互数据?
- 求助!vs 连接数据库查询出现的一个异常
- 一个编译时出现的错误
- 关于对话框和SERVICE_STATUS的一点问题。知道的请来看一下。
不是这样用的。 //IID_IGetNumber
this->UpdateData();
::CoInitialize( NULL );
IGetNumber *pGN = NULL;
CLSID clsid = CLSID_GetNumber;
HRESULT hr = CoCreateInstance(clsid, NULL, CLSCTX_INPROC_SERVER,
IID_IGetNumber, (void **)&pGN);
if(FAILED(hr))
{
AfxMessageBox("生成接口出错,可能没有初使化com!");
::CoUninitialize();
return;
}
CComBSTR str = m_value;
long ret = 0;
pGN->GetUserCount(str,&ret);
CString str2;
str2.Format("the res %d",ret);
AfxMessageBox(str2);
::CoUninitialize();
AfxMessageBox("WRONG!");;
HRESULT hr;
IPDFVw *ppvPDFVw = NULL;//对应clsid
ICreateRTF *ppvaaa = NULL;//对应iid
HRESULT l = NULL;
hr=CoCreateInstance(CLSID_PDFVw,NULL,CLSCTX_LOCAL_SERVER ,IID_IPDFVw,(void**)&ppvPDFVw);
if(SUCCEEDED(hr))
{
l = ppvPDFVw->SomeMethod();
ppvPDFVw->Release();
}
else
AfxMessageBox("WRONG!");
#include "MyCom_i.h"
#include "MyCom_i.c"
COleException err;
log=NULL;
log.CreateDispatch(TEXT("LogCom.Log"),&err);
if(!log)
{
err.ReportError();
return ;
} long test = 0;
log.SetType(1000);
test = log.GetType();
==============
谢谢了,送分给有功人员!
============
因为添加的是属性,选择了put和get两个属性,所以id都是2,成对出现的。
这是我猜的,总之现在只会使用ATL,对其原理不是太清楚。