// ITreeItem
public:
STDMETHOD(IsValid)(/*[out,retval]*/BOOL* pResult);
- static void CreateTreeItem(HWND hWnd,HTREEITEM hParent,LPCSTR text,IUnknown** punkVal);
+ static void CreateTreeItem(HWND hWnd,HTREEITEM hParent, LPCTSTR text, IUnknown** punkVal);
STDMETHOD(Sort)()
{
HRESULT ret = InitialCheck();
// \83A\83C\83e\83\80\82Ì\8dì\90¬
*punkVal = NULL;
HRESULT ret = InitialCheck();
- if(ret == S_OK){
- if(m_hItem){
- CHAR mes[MAX_PATH];
- CComVariant str;
- if(str.ChangeType(VT_BSTR,&text) == S_OK){
- int cnt = WideCharToMultiByte(GetACP(),0,str.bstrVal,-1,mes,MAX_PATH,NULL,NULL);
- CreateTreeItem(m_hWnd,m_hItem,mes,punkVal);
- }
- }
- else{
- // \95s\90³\82È\83A\83C\83e\83\80\82ð\8eQ\8fÆ\82µ\82Ä\82¢\82é
- ret = DISP_E_EXCEPTION;
+ if (FAILED(ret)) {
+ return ret;
+ }
+
+ if (m_hItem) {
+ CComVariant str;
+ ATL::CString mes(_TEXT(""));
+ if (str.ChangeType(VT_BSTR, &text) == S_OK) {
+ mes = str.bstrVal;
}
+ CreateTreeItem(m_hWnd, m_hItem, mes, punkVal);
+ return S_OK;
}
- return ret;
+ // \95s\90³\82È\83A\83C\83e\83\80\82ð\8eQ\8fÆ\82µ\82Ä\82¢\82é
+ return DISP_E_EXCEPTION;
}
+
STDMETHOD(get_Object)(/*[in,optional]*/VARIANT idx, /*[out, retval]*/ VARIANT *pVal)
{
// \83A\83C\83e\83\80\82É\8aÖ\98A\95t\82¯\82ç\82ê\82½\98A\91z\94z\97ñ\83I\83u\83W\83F\83N\83g\82ð\8eæ\93¾\82·\82é
ErrorInfo(IDS_ERR_TREEERROR);
return DISP_E_EXCEPTION;
}
+
STDMETHOD(get_Text)(/*[out, retval]*/ BSTR *pVal)
{
// \83e\83L\83X\83g\82Ì\8eæ\93¾
HRESULT ret = InitialCheck();
- if(!m_hItem){
+ if (!m_hItem) {
// \95s\90³\82È\83A\83C\83e\83\80\82ð\8eQ\8fÆ\82µ\82Ä\82¢\82é
ret = DISP_E_EXCEPTION;
}
- if(ret == S_OK){
- CHAR text[MAX_PATH];
+
+ if (ret == S_OK) {
+ TCHAR text[MAX_PATH] = { 0 };
TVITEM itm = {0};
itm.mask = TVIF_TEXT;
itm.hItem = m_hItem;
itm.pszText = text;
itm.cchTextMax = MAX_PATH;
- if(TreeView_GetItem(m_hWnd,&itm)){
- WCHAR wMes[MAX_PATH] = {0};
- MultiByteToWideChar(GetACP(),0,text,-1,wMes,MAX_PATH);
- *pVal = SysAllocString(wMes);
+ if (TreeView_GetItem(m_hWnd,&itm)) {
+ CComBSTR ret(text);
+ *pVal = ret.Detach();
}
}
return ret;
}
+
STDMETHOD(put_Text)(/*[in]*/ BSTR newVal)
{
// \83e\83L\83X\83g\82Ì\8f\91\82«\8a·\82¦
HRESULT ret = InitialCheck();
- if(!m_hItem){
+ if (!m_hItem) {
// \95s\90³\82È\83A\83C\83e\83\80\82ð\8eQ\8fÆ\82µ\82Ä\82¢\82é
ret = DISP_E_EXCEPTION;
}
- if(ret == S_OK){
- CHAR text[MAX_PATH] = {0};
+ if (ret == S_OK) {
+ ATL::CString tmp(newVal);
TVITEM itm = {0};
itm.mask = TVIF_TEXT;
itm.hItem = m_hItem;
- itm.pszText = text;
- itm.cchTextMax = MAX_PATH;
- WideCharToMultiByte(GetACP(),0,newVal,-1,text,MAX_PATH,NULL,NULL);
- TreeView_SetItem(m_hWnd,&itm);
+ itm.pszText = tmp.GetBuffer();
+ itm.cchTextMax = tmp.GetLength(); // Set\82Ì\8fê\8d\87\82Í\96³\8e\8b\82³\82ê\82é
+ TreeView_SetItem(m_hWnd, &itm);
}
return ret;
}
+
STDMETHOD(get_PrevItem)(/*[out, retval]*/ IUnknown* *pVal)
{
// \91O\82Ì\83A\83C\83e\83\80