Поделиться через


Функция DdeCreateStringHandleA (ddeml.h)

Создает дескриптор, определяющий указанную строку. Клиент динамического обмена данными (DDE) или серверное приложение может передавать дескриптор строки в качестве параметра другим функциям библиотеки DDEML.

Синтаксис

HSZ DdeCreateStringHandleA(
  [in] DWORD  idInst,
  [in] LPCSTR psz,
  [in] int    iCodePage
);

Параметры

[in] idInst

Тип: DWORD

Идентификатор экземпляра приложения, полученный при предыдущем вызове функции DdeInitialize .

[in] psz

Тип: LPTSTR

Строка, завершающаяся значением NULL, для которой создается дескриптор. Эта строка может содержать до 255 символов. Причина этого ограничения заключается в том, что функции управления строками DDEML реализуются с использованием атомов.

[in] iCodePage

Тип: int

Кодовая страница, используемая для отрисовки строки. Это значение должно быть либо CP_WINANSI (кодовая страница по умолчанию), либо CP_WINUNICODE в зависимости от того, была ли версия ANSI или Юникод DdeInitialize вызвана клиентским приложением.

Возвращаемое значение

Тип: HSZ

Если функция выполняется успешно, возвращаемое значение является дескриптором строки.

Если функция завершается сбоем, возвращается значение 0L.

Функция DdeGetLastError может использоваться для получения кода ошибки, который может быть одним из следующих значений:

Комментарии

Значение дескриптора строки не связано с регистром идентифицемой строки.

Когда приложение создает дескриптор строки или получает его в функции обратного вызова, а затем использует функцию DdeKeepStringHandle , приложение должно освободить этот дескриптор строки, если он больше не нужен.

Дескриптор строки, зависящий от экземпляра, не может быть сопоставлен со строковым дескриптором и обратно с дескриптором строки. Это показано в следующем примере, в котором функция DdeQueryString создает строку из дескриптора строки, а DdeCreateStringHandle создает дескриптор строки из этой строки, но два дескриптора не совпадают:

DWORD idInst; 
DWORD cb; 
HSZ hszInst, hszNew; 
PSZ pszInst; 
 
DdeQueryString(idInst, hszInst, pszInst, cb, CP_WINANSI); 
hszNew = DdeCreateStringHandle(idInst, pszInst, CP_WINANSI); 
// hszNew != hszInst ! 

Примечание

Заголовок ddeml.h определяет DdeCreateStringHandle в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора UNICODE. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header ddeml.h (включая Windows.h)
Библиотека User32.lib
DLL User32.dll

См. также раздел

Основные понятия

DdeAccessData

DdeCmpStringHandles

DdeFreeStringHandle

DdeInitialize

DdeKeepStringHandle

DdeQueryString

Библиотека управления динамического обмена данными

Справочные материалы