⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 win32.c

📁 linux下的MPEG1
💻 C
📖 第 1 页 / 共 5 页
字号:
    static double ofreq=0.0;    int i;    int x,y;    i=time(NULL);    if (ofreq != 0.0) return ofreq;    while(i==time(NULL));    x=localcount();    i++;    while(i==time(NULL));    y=localcount();    ofreq = (double)(y-x)/1000.;    return ofreq;}static double CPU_Freq(){    double freq;    if ((freq = linux_cpuinfo_freq()) > 0)	return freq;    if ((freq = solaris_kstat_freq()) > 0)	return freq;    return tsc_freq();}static long WINAPI expQueryPerformanceFrequency(long long* z){    *z=(long long)CPU_Freq();    dbgprintf("QueryPerformanceFrequency(%p) => 1 ( %Ld )\n", z, *z);    return 1;}static long WINAPI exptimeGetTime(){    struct timeval t;    long result;    gettimeofday(&t, 0);    result=1000*t.tv_sec+t.tv_usec/1000;    dbgprintf("timeGetTime() => %ld\n", result);    return result;}static void* WINAPI expLocalHandle(void* v){    dbgprintf("LocalHandle(%p) => %p\n", v, v);    return v;}static void* WINAPI expGlobalHandle(void* v){    dbgprintf("GlobalHandle(%p) => %p\n", v, v);    return v;}static int WINAPI expGlobalUnlock(void* v){    dbgprintf("GlobalUnlock(%p) => 1\n", v);    return 1;}static void* WINAPI expGlobalFree(void* v){    dbgprintf("GlobalFree(%p) => 0\n", v);    my_release(v);    //free(v);    return 0;}static void* WINAPI expGlobalReAlloc(void* v, int size, int flags){    void* result=my_realloc(v, size);    //void* result=realloc(v, size);    dbgprintf("GlobalReAlloc(%p, size %d, flags 0x%x) => %p\n", v,size,flags,result);    return result;}static int WINAPI expLocalUnlock(void* v){    dbgprintf("LocalUnlock(%p) => 1\n", v);    return 1;}//static void* WINAPI expLocalFree(void* v){    dbgprintf("LocalFree(%p) => 0\n", v);    my_release(v);    return 0;}static HRSRC WINAPI expFindResourceA(HMODULE module, char* name, char* type){    HRSRC result;    result=FindResourceA(module, name, type);    dbgprintf("FindResourceA(module 0x%x, name %p(%s), type %p(%s)) => 0x%x\n",	module, name, HIWORD(name) ? name : "UNICODE", type, HIWORD(type) ? type : "UNICODE", result);    return result;}extern HRSRC WINAPI LoadResource(HMODULE, HRSRC);static HGLOBAL WINAPI expLoadResource(HMODULE module, HRSRC res){    HGLOBAL result=LoadResource(module, res);    dbgprintf("LoadResource(module 0x%x, resource 0x%x) => 0x%x\n", module, res, result);    return result;}static void* WINAPI expLockResource(long res){    void* result=LockResource(res);    dbgprintf("LockResource(0x%lx) => %p\n", res, result);    return result;}static int WINAPI expFreeResource(long res){    int result=FreeResource(res);    dbgprintf("FreeResource(0x%lx) => %d\n", res, result);    return result;}//bool fun(HANDLE)//!0 on successstatic int WINAPI expCloseHandle(long v1){    dbgprintf("CloseHandle(0x%lx) => 1\n", v1);    /* do not close stdin,stdout and stderr */    if (v1 > 2)	if (!close(v1))	    return 0;    return 1;}static const char* WINAPI expGetCommandLineA(){    dbgprintf("GetCommandLineA() => \"c:\\aviplay.exe\"\n");    return "c:\\aviplay.exe";}static short envs[]={'p', 'a', 't', 'h', ' ', 'c', ':', '\\', 0, 0};static LPWSTR WINAPI expGetEnvironmentStringsW(){    dbgprintf("GetEnvironmentStringsW() => 0\n");    return 0;}static void * WINAPI expRtlZeroMemory(void *p, size_t len){    void* result=memset(p,0,len);    dbgprintf("RtlZeroMemory(%p, len %d) => %p\n",p,len,result);    return result;}static void * WINAPI expRtlMoveMemory(void *dst, void *src, size_t len){    void* result=memmove(dst,src,len);    dbgprintf("RtlMoveMemory (dest %p, src %p, len %d) => %p\n",dst,src,len,result);    return result;}static void * WINAPI expRtlFillMemory(void *p, int ch, size_t len){    void* result=memset(p,ch,len);    dbgprintf("RtlFillMemory(%p, char 0x%x, len %d) => %p\n",p,ch,len,result);    return result;}static int WINAPI expFreeEnvironmentStringsW(short* strings){    dbgprintf("FreeEnvironmentStringsW(%p) => 1\n", strings);    return 1;}static int WINAPI expFreeEnvironmentStringsA(char* strings){    dbgprintf("FreeEnvironmentStringsA(%p) => 1\n", strings);    return 1;}static const char ch_envs[]="__MSVCRT_HEAP_SELECT=__GLOBAL_HEAP_SELECTED,1\r\n""PATH=C:\\;C:\\windows\\;C:\\windows\\system\r\n";static LPCSTR WINAPI expGetEnvironmentStrings(){    dbgprintf("GetEnvironmentStrings() => %p\n", ch_envs);    return (LPCSTR)ch_envs;    // dbgprintf("GetEnvironmentStrings() => 0\n");    // return 0;}static int WINAPI expGetStartupInfoA(STARTUPINFOA *s){    /* int i; -- unused */    dbgprintf("GetStartupInfoA(%p) => 1\n", s);    memset(s, 0, sizeof(*s));    s->cb=sizeof(*s);    // s->lpReserved="Reserved";    // s->lpDesktop="Desktop";    // s->lpTitle="Title";    // s->dwX=s->dwY=0;    // s->dwXSize=s->dwYSize=200;    s->dwFlags=s->wShowWindow=1;    // s->hStdInput=s->hStdOutput=s->hStdError=0x1234;    dbgprintf("  cb=%ld\n", s->cb);    dbgprintf("  lpReserved='%s'\n", s->lpReserved);    dbgprintf("  lpDesktop='%s'\n", s->lpDesktop);    dbgprintf("  lpTitle='%s'\n", s->lpTitle);    dbgprintf("  dwX=%ld dwY=%ld dwXSize=%ld dwYSize=%ld\n",	      s->dwX, s->dwY, s->dwXSize, s->dwYSize);    dbgprintf("  dwXCountChars=%ld dwYCountChars=%ld dwFillAttribute=%ld\n",	      s->dwXCountChars, s->dwYCountChars, s->dwFillAttribute);    dbgprintf("  dwFlags=0x%lx wShowWindow=0x%x cbReserved2=0x%x\n",	      s->dwFlags, s->wShowWindow, s->cbReserved2);    dbgprintf("  lpReserved2=%p hStdInput=0x%x hStdOutput=0x%x hStdError=0x%x\n",	      s->lpReserved2, s->hStdInput, s->hStdOutput, s->hStdError);    return 1;}static int WINAPI expGetStdHandle(int z){    z += 0x1234;    dbgprintf("GetStdHandle(0x%x) => 0x%x\n", z, z);    return z;}#ifdef QTX#define FILE_HANDLE_quicktimeqts	((HANDLE)0x444)#define FILE_HANDLE_quicktimeqtx	((HANDLE)0x445)#endifstatic int WINAPI expGetFileType(int handle){    dbgprintf("GetFileType(0x%x) => 0x3 = pipe\n", handle);    return 0x3;}#ifdef QTXstatic int WINAPI expGetFileAttributesA(char *filename){    dbgprintf("GetFileAttributesA(%s) => FILE_ATTR_NORMAL\n", filename);    if (strstr(filename, "QuickTime.qts"))	return FILE_ATTRIBUTE_SYSTEM;    return FILE_ATTRIBUTE_NORMAL;}#endifstatic int WINAPI expSetHandleCount(int count){    dbgprintf("SetHandleCount(0x%x) => 1\n", count);    return 1;}static int WINAPI expGetACP(void){    dbgprintf("GetACP() => 0\n");    return 0;}extern WINE_MODREF *MODULE32_LookupHMODULE(HMODULE m);static int WINAPI expGetModuleFileNameA(int module, char* s, int len){    WINE_MODREF *mr;    int result;    //printf("File name of module %X (%s) requested\n", module, s);    if (module == 0 && len >= 12)    {	/* return caller program name */	strcpy(s, "aviplay.dll");	result=1;    }    else if(s==0)	result=0;    else	if(len<35)	    result=0;	else	{	    result=1;	    strcpy(s, "c:\\windows\\system\\");	    mr=MODULE32_LookupHMODULE(module);	    if(mr==0)//oops		strcat(s, "aviplay.dll");	    else		if(strrchr(mr->filename, '/')==NULL)		    strcat(s, mr->filename);		else		    strcat(s, strrchr(mr->filename, '/')+1);	}    if(!s)	dbgprintf("GetModuleFileNameA(0x%x, NULL, %d) => %d\n",		  module, len, result);    else	dbgprintf("GetModuleFileNameA(0x%x, %p, %d) => %d ( '%s' )\n",		  module, s, len, result, s);    return result;}static int WINAPI expSetUnhandledExceptionFilter(void* filter){    dbgprintf("SetUnhandledExceptionFilter(%p) => 1\n", filter);    return 1;//unsupported and probably won't ever be supported}static int WINAPI expLoadLibraryA(char* name){    int result = 0;    char* lastbc;    /* int i; */    if (!name)	return -1;    // we skip to the last backslash    // this is effectively eliminating weird characters in    // the text output windows    lastbc = strrchr(name, '\\');    if (lastbc)    {	int i;	lastbc++;	for (i = 0; 1 ;i++)	{	    name[i] = *lastbc++;	    if (!name[i])		break;	}    }    if(strncmp(name, "c:\\windows\\", 11)==0) name += 11;    if(strncmp(name, ".\\", 2)==0) name += 2;    dbgprintf("Entering LoadLibraryA(%s)\n", name);    // PIMJ and VIVO audio are loading  kernel32.dll    if (strcasecmp(name, "kernel32.dll") == 0 || strcasecmp(name, "kernel32") == 0)	return MODULE_HANDLE_kernel32;//	return ERROR_SUCCESS; /* yeah, we have also the kernel32 calls */			      /* exported -> do not return failed! */    if (strcasecmp(name, "user32.dll") == 0 || strcasecmp(name, "user32") == 0)//	return MODULE_HANDLE_kernel32;	return MODULE_HANDLE_user32;#ifdef QTX    if (strcasecmp(name, "wininet.dll") == 0 || strcasecmp(name, "wininet") == 0)	return MODULE_HANDLE_wininet;    if (strcasecmp(name, "ddraw.dll") == 0 || strcasecmp(name, "ddraw") == 0)	return MODULE_HANDLE_ddraw;    if (strcasecmp(name, "advapi32.dll") == 0 || strcasecmp(name, "advapi32") == 0)	return MODULE_HANDLE_advapi32;#endif    result=LoadLibraryA(name);    dbgprintf("Returned LoadLibraryA(%p='%s'), def_path=%s => 0x%x\n", name, name, win32_def_path, result);    return result;}static int WINAPI expFreeLibrary(int module){#ifdef QTX    int result=0; /* FIXME:XXX: qtx svq3 frees up qt.qts */#else    int result=FreeLibrary(module);#endif    dbgprintf("FreeLibrary(0x%x) => %d\n", module, result);    return result;}static void* WINAPI expGetProcAddress(HMODULE mod, char* name){    void* result;    switch(mod){    case MODULE_HANDLE_kernel32:	result=LookupExternalByName("kernel32.dll", name); break;    case MODULE_HANDLE_user32:	result=LookupExternalByName("user32.dll", name); break;#ifdef QTX    case MODULE_HANDLE_wininet:	result=LookupExternalByName("wininet.dll", name); break;    case MODULE_HANDLE_ddraw:	result=LookupExternalByName("ddraw.dll", name); break;    case MODULE_HANDLE_advapi32:	result=LookupExternalByName("advapi32.dll", name); break;#endif    default:	result=GetProcAddress(mod, name);    }    dbgprintf("GetProcAddress(0x%x, '%s') => %p\n", mod, name, result);    return result;}static long WINAPI expCreateFileMappingA(int hFile, void* lpAttr,					 long flProtect, long dwMaxHigh,					 long dwMaxLow, const char* name){    long result=CreateFileMappingA(hFile, lpAttr, flProtect, dwMaxHigh, dwMaxLow, name);    if(!name)	dbgprintf("CreateFileMappingA(file 0x%x, lpAttr %p,"		  "flProtect 0x%lx, dwMaxHigh 0x%lx, dwMaxLow 0x%lx, name 0) => %ld\n",		  hFile, lpAttr, flProtect, dwMaxHigh, dwMaxLow, result);    else	dbgprintf("CreateFileMappingA(file 0x%x, lpAttr %p,"		  "flProtect 0x%lx, dwMaxHigh 0x%lx, dwMaxLow 0x%lx, name %p='%s') => %ld\n",		  hFile, lpAttr, flProtect, dwMaxHigh, dwMaxLow, name, name, result);    return result;}static long WINAPI expOpenFileMappingA(long hFile, long hz, const char* name){    long result=OpenFileMappingA(hFile, hz, name);    if(!name)	dbgprintf("OpenFileMappingA(0x%lx, 0x%lx, 0) => %ld\n",		  hFile, hz, result);    else	dbgprintf("OpenFileMappingA(0x%lx, 0x%lx, %p='%s') => %ld\n",		  hFile, hz, name, name, result);    return result;}static void* WINAPI expMapViewOfFile(HANDLE file, DWORD mode, DWORD offHigh,				     DWORD offLow, DWORD size){    dbgprintf("MapViewOfFile(0x%x, 0x%lx, 0x%lx, 0x%lx, size %ld) => %p\n",	      file,mode,offHigh,offLow,size,(char*)file+offLow);    return (char*)file+offLow;}static void* WINAPI expUnmapViewOfFile(void* view){    dbgprintf("UnmapViewOfFile(%p) => 0\n", view);    return 0;}static void* WINAPI expSleep(int time){#if HAVE_NANOSLEEP    /* solaris doesn't have thread safe usleep */    struct timespec tsp;    tsp.tv_sec  =  time / 1000000;    tsp.tv_nsec = (time % 1000000) * 1000;    nanosleep(&tsp, NULL);#else    usleep(time);#endif    dbgprintf("Sleep(%d) => 0\n", time);    return 0;}// why does IV32 codec want to call this? I don't know ...static int WINAPI expCreateCompatibleDC(int hdc){    int dc = 0;//0x81;    //dbgprintf("CreateCompatibleDC(%d) => 0x81\n", hdc);    dbgprintf("CreateCompatibleDC(%d) => %d\n", hdc, dc);    return dc;}static int WINAPI expGetDeviceCaps(int hdc, int unk){    dbgprintf("GetDeviceCaps(0x%x, %d) => 0\n", hdc, unk);#ifdef QTX    #define BITSPIXEL 12    #define PLANES    14    if (unk == BITSPIXEL)	return 24;    if (unk == PLANES)	return 1;#endif    return 1;}static WIN_BOOL WINAPI expDeleteDC(int hdc){    dbgprintf("DeleteDC(0x%x) => 0\n", hdc);    if (hdc == 0x81)	return 1;    return 0;}static WIN_BOOL WINAPI expDeleteObject(int hdc){    dbgprintf("DeleteObject(0x%x) => 1\n", hdc);    /* FIXME - implement code here */    return 1;}/* btvvc32.drv wants this one */static void* WINAPI expGetWindowDC(int hdc){    dbgprintf("GetWindowDC(%d) => 0x0\n", hdc);    return 0;}#ifdef QTXstatic int WINAPI expGetWindowRect(HWND win, RECT *r){    dbgprintf("GetWindowRect(0x%x, %p) => 1\n", win, r);    /* (win == 0) => desktop */    r->right = PSEUDO_SCREEN_WIDTH;    r->left = 0;    r->bottom = PSEUDO_SCREEN_HEIGHT;    r->top = 0;    return 1;}static int WINAPI expMonitorFromWindow(HWND win, int flags){    dbgprintf("MonitorFromWindow(0x%x, 0x%x) => 0\n", win, flags);    return 0;}static int WINAPI expMonitorFromRect(RECT *r, int flags){    dbgprintf("MonitorFromRect(%p, 0x%x) => 0\n", r, flags);    return

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -