次の方法で共有


DdeCreateStringHandleA 関数 (ddeml.h)

指定した文字列を識別するハンドルを作成します。 Dynamic Data Exchange (DDE) クライアントまたはサーバー アプリケーションは、文字列ハンドルをパラメーターとして他の動的 Data Exchange 管理ライブラリ (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

文字列のレンダリングに使用するコード ページ。 この値は、ANSI バージョンまたは Unicode バージョンの DdeInitialize がクライアント アプリケーションによって呼び出されたかどうかに応じて、CP_WINANSI (既定のコード ページ) またはCP_WINUNICODEにする必要があります。

戻り値

種類: HSZ

関数が成功した場合、戻り値は文字列ハンドルです。

関数が失敗した場合、戻り値は 0L です。

DdeGetLastError 関数を使用してエラー コードを取得できます。エラー コードは、次のいずれかの値になります。

注釈

文字列ハンドルの値は、識別する文字列の大文字と小文字は関係ありません。

アプリケーションが文字列ハンドルを作成するか、コールバック関数で文字列ハンドルを受け取り、 DdeKeepStringHandle 関数を使用して保持する場合、アプリケーションは不要になったときにその文字列ハンドルを解放する必要があります。

インスタンス固有の文字列ハンドルは、文字列ハンドルから文字列にマップしたり、文字列ハンドルに戻したりすることはできません。 次の例では、 DdeQueryString 関数が文字列ハンドルから文字列を作成し、 DdeCreateStringHandle がその文字列から文字列ハンドルを作成しますが、2 つのハンドルは同じではありません。

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 ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして DdeCreateStringHandle を定義します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー ddeml.h (Windows.h を含む)
Library User32.lib
[DLL] User32.dll

関連項目

概念

DdeAccessData

DdeCmpStringHandles

DdeFreeStringHandle

DdeInitialize

DdeKeepStringHandle

DdeQueryString

動的データ交換管理ライブラリ

参照