What does it mean when a pointer has two *'s infront of it? Code: static HRESULT FooQueryInterface (IFoo *pfoo, REFIID riid, void **ppv) Also, what does HRESULT mean exactly? I read somewhere that it was for returning errors ?? Its in the above example. The example was taken from a program using COM architecture. Help?