Как использовать метод IFileDialogCustomize :: GetEditBoxText ()? - PullRequest
3 голосов
/ 20 апреля 2011
WCHAR wcText[100] = {0};
WCHAR *pText = wcText;
WCHAR **ppText = &pText;

HRESULT hr = pDialogCustomize->GetEditBoxText(dwCtrlID, ppText);

В окне редактирования содержится текст «5000», но этот текст не возвращается методом GetEditBoxText.

Как я могу получить текст из поля ввода?

1 Ответ

2 голосов
/ 20 апреля 2011

Согласно http://msdn.microsoft.com/en-us/library/bb775908%28VS.85%29.aspx, GetEditBoxText выделяет и возвращает строку для вас (которую вы позже должны будете освободить с помощью CoTaskMemFree).Я предполагаю, что вы проверяете массив wcText после вызова функции, и он пуст?Это связано с тем, что GetEditBoxText изменяет значение pText.

Попробуйте:

WCHAR *pText = NULL;
HRESULT hr = pDialogCustomize->GetEditBoxText(dwCtrlID, &pText);

if (S_OK == hr && NULL != pText)
  // function succeeded and pText points to a buffer of text that must free when done using
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...