Как было упомянуто ранее, Direct3D— это набор COM-интерфейсов. Все интерфейсы, составляющие Direct3D, зависят от одного главного: Direct3DRM (RM обозначает Retained Mode — абстрактный режим). Объект Direct3DRM представляет непосредственно Direct3D и создается функцией Direct3DRMCreate():
LPDIRECT3DRM d3drm; Direct3DRMCreate(&d3drm);
Тип LPDIRECT3DRM — это указатель на интерфейс Direct3DRM. Функция Direct3DRMCreate() создает объект и инициализирует указатель на интерфейс. После того, как функция Direct3DRMCreate() успешно завершится (мы поговорим о кодах возврата в конце этой главы), интерфейс Direct3DRM готов к использованию.