c++ - Function returns std::wstring = NULL; -


i have trying make wrapper winapi function getwindowtext. function returns std::wstring don't know how handle error happen. return null know it's wrong.

std::wstring getwindowtext(hwnd handle) {     const int size = 1024;     tchar wnd_text[size] = {0};      hresult hr = ::getwindowtext(handle,                     wnd_text, size);     if(succeeded(hr))         return std::wstring(wnd_text);     else         return null;     } 

as alternative exceptions return string reference in argument list , indicate sucess returning true or false i.e.

bool getwindowtext(hwnd handle, std::wstring& windowtext) {     const int size = 1024;     tchar wnd_text[size] = {0};      hresult hr = ::getwindowtext(handle,                     wnd_text, size);     if(succeeded(hr))     {         windowtext = wnd_text;         return true;     }     else         return false;     } 

another alternative avoids reference argument return instance of class wraps value lets know whether value present e.g.

class valuewrapper { public:     valuewrapper() : present( false ) {}     valuewrapper( const std::wstring& s ) : value( s ), present( true ) {}      bool ispresent() const { return present; }     const std::wstring& getvalue() const { return value; }  private:     std::wstring value;     bool present; }; 

note can template wrapper pretty easily. function be

valuewrapper getwindowtext(hwnd handle) {     const int size = 1024;     tchar wnd_text[size] = {0};      hresult hr = ::getwindowtext(handle,                     wnd_text, size);     if(succeeded(hr))         return valuewrapper( wnd_text );     else         return valuewrapper(); } 

Comments

Popular posts from this blog

objective c - Change font of selected text in UITextView -

php - Accessing POST data in Facebook cavas app -

c# - Getting control value when switching a view as part of a multiview -