Condividi tramite


Funzione DdeCreateStringHandleA (ddeml.h)

Crea un handle che identifica la stringa specificata. Un'applicazione client o server DDE (Dynamic Data Exchange) può passare l'handle di stringa come parametro ad altre funzioni DDEML (Dynamic Data Exchange Management Library).

Sintassi

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

Parametri

[in] idInst

Tipo: DWORD

Identificatore dell'istanza dell'applicazione ottenuto da una chiamata precedente alla funzione DdeInitialize.

[in] psz

Tipo: LPTSTR

Stringa con terminazione Null per cui creare un handle. Questa stringa può contenere fino a 255 caratteri. Il motivo di questo limite è che le funzioni di gestione delle stringhe DDEML vengono implementate usando gli atom.

[in] iCodePage

Tipo: int

Tabella codici da utilizzare per eseguire il rendering della stringa. Questo valore deve essere CP_WINANSI (tabella codici predefinita) o CP_WINUNICODE, a seconda che la versione ANSI o Unicode di DdeInitialize sia stata chiamata dall'applicazione client.

Valore restituito

Tipo: HSZ

Se la funzione ha esito positivo, il valore restituito è un handle stringa.

Se la funzione ha esito negativo, il valore restituito è 0L.

La funzione DdeGetLastError può essere usata per ottenere il codice di errore, che può essere uno dei valori seguenti:

Osservazioni

Il valore di un handle di stringa non è correlato al caso della stringa identificata.

Quando un'applicazione crea un handle stringa o ne riceve uno nella funzione di callback e quindi usa la funzione DdeKeepStringHandle per mantenerla, l'applicazione deve liberare tale handle di stringa quando non è più necessario.

Non è possibile eseguire il mapping di un handle di stringa specifico dell'istanza dall'handle di stringa alla stringa e tornare all'handle di stringa. Questo è illustrato nell'esempio seguente, in cui la funzione DdeQueryString crea una stringa da un handle stringa e DdeCreateStringHandle crea un handle stringa da tale stringa, ma i due handle non sono uguali:

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

Nota

L'intestazione ddeml.h definisce DdeCreateStringHandle come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.

Fabbisogno

Requisito Valore
client minimo supportato Windows 2000 Professional [solo app desktop]
server minimo supportato Windows 2000 Server [solo app desktop]
piattaforma di destinazione Finestre
intestazione ddeml.h (include Windows.h)
libreria User32.lib
dll User32.dll

Vedere anche

concettuale

DdeAccessData

DdeCmpStringHandles

DdeFreeStringHandle

DdeInitialize

DdeKeepStringHandle

DdeQueryString

dynamic data exchange management library

riferimento