* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
-#include <stdarg.h>
-
-#define COBJMACROS
-
-#include "windef.h"
-#include "winbase.h"
-#include "wingdi.h"
-#include "winuser.h"
-#include "winerror.h"
-#include "ole2.h"
-#include "rpcproxy.h"
-
-#include "initguid.h"
-#include "vfw.h"
#include "avifile_private.h"
-#include "wine/debug.h"
-
-WINE_DEFAULT_DEBUG_CHANNEL(avifile);
+#include <rpcproxy.h>
HMODULE AVIFILE_hModule = NULL;
TRACE("(%p,%p,%s,%p)\n", iface, pOuter, debugstr_guid(riid),
ppobj);
- if (ppobj == NULL || pOuter != NULL)
- return E_FAIL;
+ if (!ppobj)
+ return E_INVALIDARG;
*ppobj = NULL;
+ if (pOuter && !IsEqualGUID(&IID_IUnknown, riid))
+ return E_INVALIDARG;
+
if (IsEqualGUID(&CLSID_AVIFile, &This->clsid))
- return AVIFILE_CreateAVIFile(riid,ppobj);
+ return AVIFILE_CreateAVIFile(pOuter, riid, ppobj);
+ if (IsEqualGUID(&CLSID_WAVFile, &This->clsid))
+ return AVIFILE_CreateWAVFile(pOuter, riid, ppobj);
+
+ if (pOuter)
+ return CLASS_E_NOAGGREGATION;
+
if (IsEqualGUID(&CLSID_ICMStream, &This->clsid))
return AVIFILE_CreateICMStream(riid,ppobj);
- if (IsEqualGUID(&CLSID_WAVFile, &This->clsid))
- return AVIFILE_CreateWAVFile(riid,ppobj);
if (IsEqualGUID(&CLSID_ACMStream, &This->clsid))
return AVIFILE_CreateACMStream(riid,ppobj);
DisableThreadLibraryCalls(hInstDll);
AVIFILE_hModule = hInstDll;
break;
- case DLL_PROCESS_DETACH:
- break;
};
return TRUE;