Como usar winmdidl.exe e midlrt.exe para criar arquivos .h a partir de metadados do Windows
Winmdidl.exe e midlrt.exe habilitam interação de COM- nível entre o código C++ nativo e os componentes de Tempo de Execução do Windows. Winmdidl.exe usa como entrada um arquivo de .winmd que contém metadados para um componente e saída de Tempo de Execução do Windows um arquivo de IDL. Converte Midlrt.exe de que o arquivo de IDL nos arquivos de cabeçalho que o código C++ pode consumir. Ambas as ferramentas executadas na linha de comando.
Você usa estas ferramentas em dois cenários principais:
Criando personalização IDL e os arquivos de forma que o aplicativo c criando gravado usando a biblioteca do modelo de Tempo de Execução do Windows (WRL) pode consumir um componente personalizado em Tempo de Execução do Windows.
Gerando arquivos do proxy e de stub para tipos de evento definidas pelo usuário em um componente de Tempo de Execução do Windows. Para obter mais informações, consulte Acionando eventos em componentes do Tempo de Execução do Windows.
Essas ferramentas são necessárias apenas a análise de arquivos personalizados de .winmd. Os arquivos de .idl e de .h para componentes do sistema operacional Windows são gerados já para você. Por padrão, em Windows 8,1são localizados em \ arquivos de programas (x86) \ windows que os conjuntos \ 8,1 \ winrt incluem \ \.
Local das ferramentas
Por padrão em Windows 8,1, winmdidl.exe e midlrt.exe estão nos conjuntos de C:\Program Files (x86)\Windows \ 8,1 \. As versões das ferramentas também estão disponíveis em \ bin \ x86 e \ \ bin \ x64 \ pastas.
Argumentos de linha de comando de Winmdidl
Winmdidl.exe [/nologo] [/supressversioncheck] [/time] [/outdir:dir] [/banner:file] [/utf8] Winmdfile
/nologo
Impede a exibição de console de mensagem e o número de versão de direitos autorais de winmdidl./supressversioncheck
Não usado./time
Exibe o tempo de execução geral na saída do console./outdir:<dir>
Especifica um diretório de saída. Se o caminho contiver espaços, use aspas. O diretório de saída padrão é <drive>: \ \ Usuário<username>\ AppData \ local \ VirtualStore \ arquivos de programas (x86) \ Microsoft Visual Studio 12,0 \./banner:<file>
Especifica um arquivo que contém o texto personalizado para preceder à mensagem de direitos autorais e ao número da versão padrão de winmdidl na parte superior do arquivo gerado de .idl. Se o caminho contiver espaços, use aspas./utf8
Faz com que o arquivo a ser formatado como UTF-8.Winmdfile
O nome do arquivo de .winmd a análise. Se o caminho contiver espaços, use aspas.
Argumentos de linha de comando de Midlrt
Consulte Componentes de MIDLRT e de Tempo de Execução do Windows.
Exemplos
O exemplo a seguir mostra um comando de winmdidl em um prompt de comando do Visual Studio x86. Especifica um diretório de saída, e um arquivo que contém o texto especial da faixa para adicionar o arquivo gerado de .idl.
C:\Program Files (x86)\Microsoft Visual Studio 12.0>winmdidl /nologo /outdir:c:\users\giraffe\documents\ /banner:c:\users\giraffe\documents\banner.txt "C:\Users\giraffe\Documents\Visual Studio 2013\Projects\Test_for_winmdidl\Debug\Test_for_winmdidl\test_for_winmdidl.winmd"
O exemplo a seguir mostra a exibição de console de winmdidl que indica que a operação foi bem-sucedida.
Generating c:\users\giraffe\documents\\Test_for_winmdidl.idl
Em seguida, midlrt é executado no arquivo de IDL gerado. Observe que o argumento de metadata_dir está especificado depois que o nome do arquivo de .idl. Do caminho \ \ \ WinMetadata é exigido- ele é o local para windows.winmd.
C:\Program Files (x86)\Microsoft Visual Studio 12.0> midlrt "c:\users\mblome\documents\test_for_winmdidl.idl" /metadata_dir "C:\Windows\System32\WinMetadata"
Comentários
O arquivo de saída de uma operação de winmdidl tem o mesmo nome do arquivo de entrada mas tem a extensão de nome de arquivo de .idl.
Se você estiver desenvolvendo um componente de Tempo de Execução do Windows que é acessado de WRL, você pode especificar winmdidl.exe e midlrt.exe para execução como a pós-compilação etapas de forma que os arquivos de .idl e de .h são gerados em cada construção. Para ver um exemplo, consulte Acionando eventos em componentes do Tempo de Execução do Windows.