Все методы интерфейса COM, описанные в этом документе используют C ++ имена классов. Это соглашение наименования используется для непротиворечивости, и различимости между методами, используемыми для различных объектов DirectX, которые используют то же самое имя, типа QueryInterface, AddRef, и Release. Это не подразумевает, что эти методы могут только использоваться с C ++.
Кроме того, синтаксисом предусмотрено, что методы используют для непротиворечивости соглашения C ++ . Это не включает указатель this на интерфейс. Когда программирование происходит на C, указатель на интерфейс должен быть включен в каждый метод. Например, следующий пример показывает C ++ синтаксис для IDirectDraw:: GetCaps:
HRESULT GetCaps (LPDDCAPS lpDDDriverCaps, LPDDCAPS lpDDHELCaps);
Тот же самый пример, использующий C синтаксис:
HRESULT
GetCaps (LPDIRECTDRAW lpDD,
LPDDCAPS lpDDDriverCaps, LPDDCAPS lpDDHELCaps);
Параметр lpDD - указатель на структуру DirectDraw, которая представляет объект DirectDraw.