Carbon Get Text Control’s string

Posted on Updated on

Function:

void GetTextFromControl( WindowRef win, ControlID id, char *outStr, size_t len)
{
OSStatus err = noErr ;
ControlRef ctrl ;
CFStringRef str ;
Size actualsize ;
err = GetControlByID( win, &id, &ctrl) ;

GetControlData( ctrl,kControlEditTextPart , kControlEditTextCFStringTag, sizeof(CFStringRef ),&str,&actualsize) ;
//CFStringTrimWhitespace( (CFMutableStringRef) str) ;
CFStringGetCString(str, outStr,len, kCFStringEncodingASCII);
CFRelease( str);
}

Sample code:

ControlID ctrlID ;
ctrlID.signature = kEditLoginCodeSignature ;
ctrlID.id = kEditLoginCodeFieldID ;
char password[5] ;
GetTextFromControl( g_hMainWindow, ctrlID, password, sizeof(password) ) ;

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s