接帖:http://community.csdn.net/Expert/topic/3262/3262314.xml?temp=.4761621例如:我在增加节点的时候
InsertItem(LPCTSTR lpszItem, HTREEITEM hParent, HTREEITEM hInsertAfter)我希望设置缺省值
hParent=TVI_ROOT
hInsertAfter=TVI_LAST在实际传递参数时将HTREEITEM 类型改为OLE_HANDLEOLE_HANDLE InsertItem(LPCTSTR lpszItem, OLE_HANDLE hParent = (HTREEITEM)TVI_ROOT, OLE_HANDLE hInsertAfter = (HTREEITEM)TVI_LAST)这么做调试不能通过,请教应该如何处理?能够提供缺省参数?

解决方案 »

  1.   

    可以!用defaultvalue属性
    eg:
    interface IFace : IUnknown
    {
        HRESULT Ex1([defaultvalue(44)] LONG i);
        HRESULT Ex2([defaultvalue(44)] SHORT i);
        HRESULT Ex3([defaultvalue("Hello")] BSTR i);
    ...
    };
      

  2.   

    在你的接口定义文件中,添加:
    #define TVI_ROOT                ((OLE_HANDLE)0xFFFF0000)//
    #define TVI_LAST                  ((OLE_HANDLE)0xFFFF0002)//
    在接口函数定义中这样写:
    InsertItem([in]BSTR bstrItem,[in.defaultvalue(TVI_ROOT)]OLE_HANDLE hParent,[in,defaultvalue(TVI_LAST)]OLE_HANDLE hInsertAfter);试试吧
      

  3.   

    当然可以,在classWizard中添加属性时,就有一个复选框关于是否设置当前添加的属性为默认属性,选上就可以了 ,只能有一个属性为默认属性