Enumeração MSHLFLAGS (wtypesbase.h)
Especifica por que o marshaling deve ser feito.
Syntax
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;
Constantes
MSHLFLAGS_NORMAL Valor: 0 O marshaling está ocorrendo porque um ponteiro de interface está sendo passado de um processo para outro. Esse é o caso normal. O pacote de dados produzido pelo processo de marshaling não será gravado no processo de destino. O pacote de dados marshaled pode ser desmarcado apenas uma vez ou não. Se o receptor desmarcar o pacote de dados com êxito, a função CoReleaseMarshalData será chamada automaticamente no pacote de dados como parte do processo de unmarshaling. Se o receptor não fizer ou não puder desmarcar o pacote de dados, o remetente deverá chamar CoReleaseMarshalData no pacote de dados. |
MSHLFLAGS_TABLESTRONG Valor: 1 O marshaling está ocorrendo porque o pacote de dados deve ser armazenado em uma tabela acessível globalmente da qual ele pode ser desmarcando uma ou mais vezes ou não. A presença do pacote de dados na tabela conta como uma forte referência à interface que está sendo empacotada, o que significa que é suficiente manter o objeto ativo. Quando o pacote de dados é removido da tabela, o implementador de tabela deve chamar a função CoReleaseMarshalData no pacote de dados. MSHLFLAGS_TABLESTRONG é usado pela função RegisterDragDrop ao registrar uma janela como um destino de soltar. Isso mantém a janela registrada como um destino de soltar, independentemente de quantas vezes o usuário final arrasta pela janela. A função RevokeDragDrop chama CoReleaseMarshalData. |
MSHLFLAGS_TABLEWEAK Valor: 2 O marshaling está ocorrendo porque o pacote de dados deve ser armazenado em uma tabela acessível globalmente da qual ele pode ser desmarcando uma ou mais vezes ou não. No entanto, a presença do pacote de dados na tabela atua como uma referência fraca à interface que está sendo marshalada, o que significa que não é suficiente manter o objeto ativo. Quando o pacote de dados é removido da tabela, o implementador de tabela deve chamar a função CoReleaseMarshalData no pacote de dados. MSHLFLAGS_TABLEWEAK normalmente é usado ao registrar um objeto na ROT (tabela de objetos em execução). Isso impede que a entrada do objeto no ROT mantenha o objeto ativo na ausência de outras conexões. Consulte IRunningObjectTable::Register para obter mais informações. |
MSHLFLAGS_NOPING Valor: 4 Adicionar esse sinalizador a um marshaling de objeto original (em vez de realizar marshaling de um proxy) desabilitará o protocolo de ping para esse objeto. |
MSHLFLAGS_RESERVED1 Valor: 8 |
MSHLFLAGS_RESERVED2 Valor: 16 |
MSHLFLAGS_RESERVED3 Valor: 32 |
MSHLFLAGS_RESERVED4 Valor: 64 |
Requisitos
Cliente mínimo com suporte | Windows 2000 Professional [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows 2000 Server [somente aplicativos da área de trabalho] |
Cabeçalho | wtypesbase.h (inclua WTypes.h) |