<Return[G]><Top>

GlobalAlloc

Declare Function Api_GlobalAlloc& Lib "kernel32" Alias "GlobalAlloc" (ByVal wFlags&, ByVal dwBytes&)

Declare Function GlobalAlloc Lib "kernel32" (ByVal wFlags As Long, ByVal dwBytes As Long) As Long

指定されたバイト数のメモリをヒープから割り当てる。Win32 のメモリ管理機能は、グローバルヒープとローカルヒープを区別していない。

パラメータ
uFlags
    [入力]メモリ割り当ての方法を指定する。0 を指定した場合、既定値として GMEM_FIXED を想定する。

    このパラメータで、明記されている矛盾を除き、次の値の任意の組み合わせを指定する。

    値                            

意味                                                                                                                                           

    GHND

GMEM_MOVEABLE と GMEM_ZEROINIT の各フラグの組み合わせである。

    GMEM_FIXED

固定メモリを割り当てる。ポインタが返る

    GMEM_MOVEABLE

 

 

 

移動可能メモリを割り当てる。Win32 環境では、物理メモリ内でメモリブロックが移動されることは決してないが、

既定のヒープ内で移動することは可能である。
戻り値は、メモリオブジェクトのハンドルである。このハンドルをポインタへ変換するには、GlobalLock 関数を使う。
この値を GMEM_FIXED フラグと組み合わせることはできない。

    GMEM_ZEROINIT

 

メモリの内容を 0 へ初期化する。

GPTR GMEM_FIXED と GMEM_ZEROINIT の各フラグの組み合わせである。

    次の値は、廃止された。

    値                                   

意味                                                                                                                                     

    GMEM_DDESHARE

無視される。この値は、16 ビット版 Windows との互換性を保つ目的でのみ提供されている。

    GMEM_DISCARDABLE

 

 

無視される。この値は、16 ビット版 Windows との互換性を保つ目的でのみ提供されている。
Win32 環境では、GlobalDiscard 関数を呼び出して、ブロックを明示的に破棄しなければならない。
この値を GMEM_FIXED フラグと組み合わせることはできない。

    GMEM_LOWER

無視される。この値は、16 ビット版 Windows との互換性を保つ目的でのみ提供されている。

    GMEM_NOCOMPACT

無視される。この値は、16 ビット版 Windows との互換性を保つ目的でのみ提供されている。

    GMEM_NODISCARD

無視される。この値は、16 ビット版 Windows との互換性を保つ目的でのみ提供されている。

    GMEM_NOT_BANKED

無視される。この値は、16 ビット版 Windows との互換性を保つ目的でのみ提供されている。

    GMEM_NOTIFY

無視される。この値は、16 ビット版 Windows との互換性を保つ目的でのみ提供されている。

    GMEM_SHARE

無視される。この値は、16 ビット版 Windows との互換性を保つ目的でのみ提供されている。

dwBytes
    [入力]割り当てたいバイト数を指定する。

    dwBytes パラメータに 0、uFlags パラメータに GMEM_MOVEABLE フラグを指定すると、この関数は、破棄マークが付けられたメモリオブ

    ジェクトのハンドルを返す。最初にハンドルだけを作成しておき、後で実際にメモリを割り当てる場合にこの方法を利用できる。
 

戻り値
    関数が成功すると、新しく割り当てられたメモリオブジェクトのハンドルが返る。
    関数が失敗すると、NULL が返る。拡張エラー情報を取得するには、GetLastError 関数を使う。