Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Указывает, почему требуется выполнить маршалинг.
Синтаксис
typedef enum tagMSHLFLAGS {
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;
Константы
MSHLFLAGS_NORMALЗначение: 0 Маршалинг происходит из-за того, что указатель интерфейса передается из одного процесса в другой. Это нормальный случай. Пакет данных, созданный процессом маршалинга, будет разархивирован в целевом процессе. Маршалированные пакеты данных можно отменить только один раз или вообще не выполнять. Если получатель успешно отменяет удаление пакета данных, функция CoReleaseMarshalData автоматически вызывается для пакета данных в рамках процесса размежевывания. Если получатель не отменяет или не может отменить удаление пакета данных, отправитель должен вызвать CoReleaseMarshalData для пакета данных. |
MSHLFLAGS_TABLESTRONGЗначение: 1 Маршалинг происходит потому, что пакет данных должен храниться в глобально доступной таблице, из которой его можно отменить один или несколько раз или вообще не удалить. Наличие пакета данных в таблице считается строгой ссылкой на маршалингуемый интерфейс, что означает, что этого достаточно для поддержания активности объекта. При удалении пакета данных из таблицы средство реализации таблицы должно вызвать функцию CoReleaseMarshalData для пакета данных. MSHLFLAGS_TABLESTRONG используется функцией RegisterDragDrop при регистрации окна в качестве целевого объекта удаления. Это позволяет зарегистрировать окно в качестве целевого объекта удаления независимо от того, сколько раз пользователь перетаскивает его. Функция RevokeDragDrop вызывает CoReleaseMarshalData. |
MSHLFLAGS_TABLEWEAKЗначение: 2 Маршалинг происходит потому, что пакет данных должен храниться в глобально доступной таблице, из которой его можно отменить один или несколько раз или вообще не удалить. Однако наличие пакета данных в таблице выступает в качестве слабой ссылки на маршалингуемый интерфейс, а это означает, что этого недостаточно для поддержания активности объекта. При удалении пакета данных из таблицы средство реализации таблицы должно вызвать функцию CoReleaseMarshalData для пакета данных. MSHLFLAGS_TABLEWEAK обычно используется при регистрации объекта в таблице выполняющихся объектов (ROT). Это предотвращает сохранение объекта в объекте ROT при отсутствии других соединений. Дополнительные сведения см. в разделе IRunningObjectTable::Register . |
MSHLFLAGS_NOPINGЗначение: 4 Добавление этого флага к маршалингу исходного объекта (в отличие от маршалинга прокси-сервера) отключит протокол проверки связи для этого объекта. |
MSHLFLAGS_RESERVED1Значение: 8 |
MSHLFLAGS_RESERVED2Значение: 16 |
MSHLFLAGS_RESERVED3Значение: 32 |
MSHLFLAGS_RESERVED4Значение: 64 |
Требования
| Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
| Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
| Верхняя часть | wtypesbase.h (включая WTypes.h) |