Объект DirectDraw, связанный с новой поверхностью вызван параметром lpDD. Этот метод заполняет поверхностную структуру описания &ddsd и возвращает указатель на новую поверхность (&lpDDS).
Вызвав IDirectDraw:: CreateSurface, Вы сначала опишите vtable объекта DirectDraw, затем опишите метод из vtable. Первый параметр в методе - ссылка к объекту DirectDraw, который был создан и вызывает метод.
Чтобы иллюстрировать различие между вызовом метода объекта COM в C и C ++, тот же самый метод на C ++ показывается ниже (C ++ неявно описывает указатель и передает его):
ret = lpDD- > CreateSurface (&ddsd, &lpDDS, NULL)