static void check_crashdump(void);
LONG WINAPI vlc_exception_filter(struct _EXCEPTION_POINTERS *lpExceptionInfo);
# endif
-typedef enum _HEAP_INFORMATION_CLASS {
- HeapCompatibilityInformation,
- HeapEnableTerminationOnCorruption
-} HEAP_INFORMATION_CLASS;
-WINBASEAPI BOOL WINAPI HeapSetInformation(HANDLE,HEAP_INFORMATION_CLASS,PVOID,SIZE_T);
#define HeapEnableTerminationOnCorruption (HEAP_INFORMATION_CLASS)1
#endif
int argc;
#ifndef UNDER_CE
HeapSetInformation(NULL, HeapEnableTerminationOnCorruption, NULL, 0);
+
+ HINSTANCE h_Kernel32 = LoadLibraryW(L"kernel32.dll");
+ if(h_Kernel32)
+ {
+ BOOL (WINAPI * mySetProcessDEPPolicy)( DWORD dwFlags);
+# define PROCESS_DEP_ENABLE 1
+
+ mySetProcessDEPPolicy = (BOOL WINAPI (*)(DWORD))
+ GetProcAddress(h_Kernel32, "SetProcessDEPPolicy");
+ if(mySetProcessDEPPolicy)
+ mySetProcessDEPPolicy(PROCESS_DEP_ENABLE);
+ FreeLibrary(h_Kernel32);
+ }
+
wchar_t **wargv = CommandLineToArgvW (GetCommandLine (), &argc);
if (wargv == NULL)
return 1;
- char *argv[argc + 1];
+ char *argv[argc + 2];
BOOL crash_handling = TRUE;
int j = 0;
+ argv[j++] = FromWide( L"--media-library" );
argv[j++] = FromWide( L"--no-ignore-config" );
for (int i = 1; i < argc; i++)
{
if(!wcscmp(wargv[i], L"--no-crashdump"))
{
crash_handling = FALSE;
+ continue; /* don't give argument to libvlc */
}
- else
- {
- argv[j] = FromWide (wargv[i]);
- j++;
- }
+
+ argv[j++] = FromWide (wargv[i]);
}
argc = j;