Personally I wouldn't have put those checks in the implementation, but I don't care enough to reject the patch. If we are going to add such a check, though, it should probably return E_POINTER instead of S_FALSE.