WinRT est fondamentalement COM, donc l'utilisation de composants WinRT à partir de C est comme l'utilisation de composants COM de C. Comme avant, vous obtenez .fichiers idl pour tous les composants WinRT, et aussi .h les fichiers produits à partir de ceux-ci .fichiers idl. L' .h les fichiers comprennent à la fois le C++, et les déclarations en C (enveloppé dans #ifdef __cplusplus
). Vous pouvez simplement #include eux et commencer à bidouiller.
Ce n'est pas exactement soigné, bien que, par exemple, quelque chose comme ça C++/CX:
Windows::UI::Xaml::Controls::TextBlock^ tb = ...;
tb->Text = "Foo";
ce qui est équivalent à la vanille C++:
Windows::UI::Xaml::Controls::ITextBlock* tb = ...;
HSTRING hs;
HRESULT hr = WindowsStringCreate(L"Foo", 3, &hs);
// check hr for errors
hr = tb->set_Text(hs);
// check hr for errors
tb->Release();
serait écrit en C:
__x_Windows_CUI_CXaml_CControls_CITextBlock* tb = ...;
HRESULT hr;
HSTRING hs;
hr = WindowsCreateString(L"Foo", 3, &hs);
// check hr for errors
hr = __x_Windows_CUI_CXaml_CControls_CITextBlock_put_Text(tb, hs);
// check hr for errors
IUnknown_Release(tb);
Regarder à l'intérieur "C:\Program Files (x86)\Windows Kits\8.0\include\winrt" Developer Preview pour voir la .idl et .h fichiers.