You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
108 lines
2.1 KiB
108 lines
2.1 KiB
|
|
/* - - - - - - - - */
|
|
|
|
/*
|
|
** Copyright (C) Microsoft Corporation 1993. All rights reserved.
|
|
*/
|
|
|
|
/* - - - - - - - - */
|
|
|
|
#include <win32.h>
|
|
#include <shellapi.h>
|
|
|
|
#include <compobj.h>
|
|
|
|
#define INITGUID // make DECLARE_GUILD()
|
|
#include <initguid.h>
|
|
|
|
#ifdef WIN32
|
|
//
|
|
// !!!for some reason we can't link to GUID's in Win32!!!
|
|
//
|
|
#include <coguid.h>
|
|
#endif
|
|
|
|
#include <avifmt.h>
|
|
#include "avifile.h"
|
|
#include "avifilei.h"
|
|
#include "avicmprs.h"
|
|
#include "avifps.h"
|
|
#include "editstrm.h"
|
|
|
|
#include "debug.h"
|
|
|
|
extern "C" HINSTANCE ghMod;
|
|
HINSTANCE ghMod;
|
|
|
|
/* - - - - - - - - */
|
|
|
|
EXTERN_C int CALLBACK LibMain(
|
|
HINSTANCE hInstance,
|
|
UINT uDataSeg,
|
|
UINT cbHeapSize,
|
|
LPCSTR pszCmdLine)
|
|
{
|
|
// save our module handle
|
|
ghMod = hInstance;
|
|
return TRUE;
|
|
}
|
|
|
|
EXTERN_C int CALLBACK WEP(BOOL fSystemExit)
|
|
{
|
|
return TRUE;
|
|
}
|
|
|
|
/* - - - - - - - - */
|
|
|
|
STDAPI DllGetClassObject(
|
|
const CLSID FAR& rclsid,
|
|
const IID FAR& riid,
|
|
void FAR* FAR* ppv)
|
|
{
|
|
HRESULT hresult;
|
|
|
|
DPF("DllGetClassObject\n");
|
|
|
|
if (rclsid == CLSID_AVIFile ||
|
|
#if 0
|
|
rclsid == CLSID_AVISimpleUnMarshal ||
|
|
#endif
|
|
rclsid == CLSID_AVICmprsStream) {
|
|
hresult = CAVIFileCF::Create(rclsid, riid, ppv);
|
|
return hresult;
|
|
} else if (rclsid == CLSID_AVIStreamPS) {
|
|
return (*ppv = (LPVOID)new CPSFactory()) != NULL
|
|
? NOERROR : ResultFromScode(E_OUTOFMEMORY);
|
|
} else {
|
|
return ResultFromScode(E_UNEXPECTED);
|
|
}
|
|
}
|
|
|
|
/* - - - - - - - - */
|
|
|
|
#ifdef WIN32
|
|
|
|
EXTERN_C BOOL WINAPI DLLEntryPoint(HINSTANCE hModule, ULONG Reason, LPVOID pv)
|
|
{
|
|
switch (Reason)
|
|
{
|
|
case DLL_PROCESS_ATTACH:
|
|
LibMain(hModule, 0, 0, NULL);
|
|
break;
|
|
|
|
case DLL_PROCESS_DETACH:
|
|
WEP(FALSE);
|
|
break;
|
|
|
|
case DLL_THREAD_DETACH:
|
|
break;
|
|
|
|
case DLL_THREAD_ATTACH:
|
|
break;
|
|
}
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
#endif
|
|
|