MSHLFLAGS
列挙型メンバー 8
| 名前 | 10進 | 16進 | 説明 |
|---|---|---|---|
| MSHLFLAGS_NORMAL | 0 | 0x0 | インターフェイスポインターがあるプロセスから別のプロセスへ渡されるため、マーシャリングが行われます。これが通常のケースです。マーシャリング処理によって生成されたデータパケットは、送信先のプロセスでアンマーシャリングされます。マーシャリングされたデータパケットは、1 回だけアンマーシャリングできるか、まったくアンマーシャリングされません。受信側がデータパケットのアンマーシャリングに成功した場合、アンマーシャリング処理の一部として CoReleaseMarshalData 関数がデータパケットに対して自動的に呼び出されます。受信側がデータパケットをアンマーシャリングしない場合、またはできない場合は、送信側がデータパケットに対して CoReleaseMarshalData を呼び出す必要があります。 |
| MSHLFLAGS_TABLESTRONG | 1 | 0x1 | データパケットがグローバルにアクセス可能なテーブルに格納され、そこから 1 回以上アンマーシャリングされるか、まったくアンマーシャリングされないため、マーシャリングが行われます。テーブル内にデータパケットが存在することは、マーシャリングされるインターフェイスへの強い参照と見なされます。つまり、オブジェクトを存続させるのに十分です。データパケットがテーブルから削除されるとき、テーブルの実装者はそのデータパケットに対して CoReleaseMarshalData 関数を呼び出す必要があります。 MSHLFLAGS_TABLESTRONG は、ウィンドウをドロップターゲットとして登録する際に RegisterDragDrop 関数によって使用されます。これにより、エンドユーザーがそのウィンドウ上を何回ドラッグしても、ウィンドウはドロップターゲットとして登録されたままになります。RevokeDragDrop 関数は CoReleaseMarshalData を呼び出します。 |
| MSHLFLAGS_TABLEWEAK | 2 | 0x2 | データパケットがグローバルにアクセス可能なテーブルに格納され、そこから 1 回以上アンマーシャリングされるか、まったくアンマーシャリングされないため、マーシャリングが行われます。ただし、テーブル内にデータパケットが存在することは、マーシャリングされるインターフェイスへの弱い参照として機能します。つまり、オブジェクトを存続させるには不十分です。データパケットがテーブルから削除されるとき、テーブルの実装者はそのデータパケットに対して CoReleaseMarshalData 関数を呼び出す必要があります。 MSHLFLAGS_TABLEWEAK は通常、実行中のオブジェクト テーブル (ROT) にオブジェクトを登録するときに使用されます。これにより、他の接続が存在しない場合に、ROT 内のオブジェクトのエントリがそのオブジェクトを存続させてしまうことを防ぎます。詳細については、IRunningObjectTable::Register を参照してください。 |
| MSHLFLAGS_NOPING | 4 | 0x4 | (プロキシのマーシャリングではなく) 元のオブジェクトのマーシャリングにこのフラグを追加すると、そのオブジェクトに対する ping プロトコルが無効になります。 |
| MSHLFLAGS_RESERVED1 | 8 | 0x8 | |
| MSHLFLAGS_RESERVED2 | 16 | 0x10 | |
| MSHLFLAGS_RESERVED3 | 32 | 0x20 | |
| MSHLFLAGS_RESERVED4 | 64 | 0x40 |
公式ドキュメント
マーシャリングを行う理由を指定します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
各言語での定義
列挙メンバーの定義。HSP タブは #define global(値は16進)。
typedef enum MSHLFLAGS : int {
MSHLFLAGS_NORMAL = 0,
MSHLFLAGS_TABLESTRONG = 1,
MSHLFLAGS_TABLEWEAK = 2,
MSHLFLAGS_NOPING = 4,
MSHLFLAGS_RESERVED1 = 8,
MSHLFLAGS_RESERVED2 = 16,
MSHLFLAGS_RESERVED3 = 32,
MSHLFLAGS_RESERVED4 = 64
} MSHLFLAGS;public enum MSHLFLAGS : int
{
MSHLFLAGS_NORMAL = 0,
MSHLFLAGS_TABLESTRONG = 1,
MSHLFLAGS_TABLEWEAK = 2,
MSHLFLAGS_NOPING = 4,
MSHLFLAGS_RESERVED1 = 8,
MSHLFLAGS_RESERVED2 = 16,
MSHLFLAGS_RESERVED3 = 32,
MSHLFLAGS_RESERVED4 = 64,
}Public Enum MSHLFLAGS As Integer
MSHLFLAGS_NORMAL = 0
MSHLFLAGS_TABLESTRONG = 1
MSHLFLAGS_TABLEWEAK = 2
MSHLFLAGS_NOPING = 4
MSHLFLAGS_RESERVED1 = 8
MSHLFLAGS_RESERVED2 = 16
MSHLFLAGS_RESERVED3 = 32
MSHLFLAGS_RESERVED4 = 64
End Enumimport enum
class MSHLFLAGS(enum.IntEnum):
MSHLFLAGS_NORMAL = 0
MSHLFLAGS_TABLESTRONG = 1
MSHLFLAGS_TABLEWEAK = 2
MSHLFLAGS_NOPING = 4
MSHLFLAGS_RESERVED1 = 8
MSHLFLAGS_RESERVED2 = 16
MSHLFLAGS_RESERVED3 = 32
MSHLFLAGS_RESERVED4 = 64// MSHLFLAGS
pub const MSHLFLAGS_NORMAL: i32 = 0;
pub const MSHLFLAGS_TABLESTRONG: i32 = 1;
pub const MSHLFLAGS_TABLEWEAK: i32 = 2;
pub const MSHLFLAGS_NOPING: i32 = 4;
pub const MSHLFLAGS_RESERVED1: i32 = 8;
pub const MSHLFLAGS_RESERVED2: i32 = 16;
pub const MSHLFLAGS_RESERVED3: i32 = 32;
pub const MSHLFLAGS_RESERVED4: i32 = 64;// MSHLFLAGS
const (
MSHLFLAGS_NORMAL int32 = 0
MSHLFLAGS_TABLESTRONG int32 = 1
MSHLFLAGS_TABLEWEAK int32 = 2
MSHLFLAGS_NOPING int32 = 4
MSHLFLAGS_RESERVED1 int32 = 8
MSHLFLAGS_RESERVED2 int32 = 16
MSHLFLAGS_RESERVED3 int32 = 32
MSHLFLAGS_RESERVED4 int32 = 64
)const
MSHLFLAGS_NORMAL = 0;
MSHLFLAGS_TABLESTRONG = 1;
MSHLFLAGS_TABLEWEAK = 2;
MSHLFLAGS_NOPING = 4;
MSHLFLAGS_RESERVED1 = 8;
MSHLFLAGS_RESERVED2 = 16;
MSHLFLAGS_RESERVED3 = 32;
MSHLFLAGS_RESERVED4 = 64;// MSHLFLAGS
pub const MSHLFLAGS_NORMAL: i32 = 0;
pub const MSHLFLAGS_TABLESTRONG: i32 = 1;
pub const MSHLFLAGS_TABLEWEAK: i32 = 2;
pub const MSHLFLAGS_NOPING: i32 = 4;
pub const MSHLFLAGS_RESERVED1: i32 = 8;
pub const MSHLFLAGS_RESERVED2: i32 = 16;
pub const MSHLFLAGS_RESERVED3: i32 = 32;
pub const MSHLFLAGS_RESERVED4: i32 = 64;const
MSHLFLAGS_NORMAL* = 0
MSHLFLAGS_TABLESTRONG* = 1
MSHLFLAGS_TABLEWEAK* = 2
MSHLFLAGS_NOPING* = 4
MSHLFLAGS_RESERVED1* = 8
MSHLFLAGS_RESERVED2* = 16
MSHLFLAGS_RESERVED3* = 32
MSHLFLAGS_RESERVED4* = 64enum MSHLFLAGS : int {
MSHLFLAGS_NORMAL = 0,
MSHLFLAGS_TABLESTRONG = 1,
MSHLFLAGS_TABLEWEAK = 2,
MSHLFLAGS_NOPING = 4,
MSHLFLAGS_RESERVED1 = 8,
MSHLFLAGS_RESERVED2 = 16,
MSHLFLAGS_RESERVED3 = 32,
MSHLFLAGS_RESERVED4 = 64,
}#define global MSHLFLAGS_NORMAL 0x0
#define global MSHLFLAGS_TABLESTRONG 0x1
#define global MSHLFLAGS_TABLEWEAK 0x2
#define global MSHLFLAGS_NOPING 0x4
#define global MSHLFLAGS_RESERVED1 0x8
#define global MSHLFLAGS_RESERVED2 0x10
#define global MSHLFLAGS_RESERVED3 0x20
#define global MSHLFLAGS_RESERVED4 0x40