Win32 API 日本語リファレンス
ホームSystem.Com › MSHLFLAGS

MSHLFLAGS

列挙型
基底型i4

メンバー 8

名前10進16進説明
MSHLFLAGS_NORMAL00x0インターフェイスポインターがあるプロセスから別のプロセスへ渡されるため、マーシャリングが行われます。これが通常のケースです。マーシャリング処理によって生成されたデータパケットは、送信先のプロセスでアンマーシャリングされます。マーシャリングされたデータパケットは、1 回だけアンマーシャリングできるか、まったくアンマーシャリングされません。受信側がデータパケットのアンマーシャリングに成功した場合、アンマーシャリング処理の一部として CoReleaseMarshalData 関数がデータパケットに対して自動的に呼び出されます。受信側がデータパケットをアンマーシャリングしない場合、またはできない場合は、送信側がデータパケットに対して CoReleaseMarshalData を呼び出す必要があります。
MSHLFLAGS_TABLESTRONG10x1

データパケットがグローバルにアクセス可能なテーブルに格納され、そこから 1 回以上アンマーシャリングされるか、まったくアンマーシャリングされないため、マーシャリングが行われます。テーブル内にデータパケットが存在することは、マーシャリングされるインターフェイスへの強い参照と見なされます。つまり、オブジェクトを存続させるのに十分です。データパケットがテーブルから削除されるとき、テーブルの実装者はそのデータパケットに対して CoReleaseMarshalData 関数を呼び出す必要があります。

MSHLFLAGS_TABLESTRONG は、ウィンドウをドロップターゲットとして登録する際に RegisterDragDrop 関数によって使用されます。これにより、エンドユーザーがそのウィンドウ上を何回ドラッグしても、ウィンドウはドロップターゲットとして登録されたままになります。RevokeDragDrop 関数は CoReleaseMarshalData を呼び出します。

MSHLFLAGS_TABLEWEAK20x2

データパケットがグローバルにアクセス可能なテーブルに格納され、そこから 1 回以上アンマーシャリングされるか、まったくアンマーシャリングされないため、マーシャリングが行われます。ただし、テーブル内にデータパケットが存在することは、マーシャリングされるインターフェイスへの弱い参照として機能します。つまり、オブジェクトを存続させるには不十分です。データパケットがテーブルから削除されるとき、テーブルの実装者はそのデータパケットに対して CoReleaseMarshalData 関数を呼び出す必要があります。

MSHLFLAGS_TABLEWEAK は通常、実行中のオブジェクト テーブル (ROT) にオブジェクトを登録するときに使用されます。これにより、他の接続が存在しない場合に、ROT 内のオブジェクトのエントリがそのオブジェクトを存続させてしまうことを防ぎます。詳細については、IRunningObjectTable::Register を参照してください。

MSHLFLAGS_NOPING40x4(プロキシのマーシャリングではなく) 元のオブジェクトのマーシャリングにこのフラグを追加すると、そのオブジェクトに対する ping プロトコルが無効になります。
MSHLFLAGS_RESERVED180x8
MSHLFLAGS_RESERVED2160x10
MSHLFLAGS_RESERVED3320x20
MSHLFLAGS_RESERVED4640x40

公式ドキュメント

マーシャリングを行う理由を指定します。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
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 Enum
import 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* = 64
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,
}
#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