void DocWndAddDocFile(char *filename) { struct timidity_file *tf = open_file(filename,0,0); #ifdef W32GUI_DEBUG PrintfDebugWnd("DocWndAddDocFile <- [%s]\n",filename); #endif if(tf==NULL) return; close_file(tf); if(DocWndInfoLock()==FALSE) return; if(DocWndInfo.DocFileMax>=DOCWND_DOCFILEMAX-1) goto end; DocWndInfo.DocFileMax++; strncpy(DocWndInfo.DocFile[DocWndInfo.DocFileMax-1],filename,MAXPATH); DocWndInfo.DocFile[DocWndInfo.DocFileMax-1][MAXPATH-1] = '\0'; if(DocWndInfo.DocFileCur==1) EnableWindow(GetDlgItem(hDocWnd,IDC_BUTTON_PREV),FALSE); else EnableWindow(GetDlgItem(hDocWnd,IDC_BUTTON_PREV),TRUE); if(DocWndInfo.DocFileCur==DocWndInfo.DocFileMax) EnableWindow(GetDlgItem(hDocWnd,IDC_BUTTON_NEXT),FALSE); else EnableWindow(GetDlgItem(hDocWnd,IDC_BUTTON_NEXT),TRUE); #ifdef W32GUI_DEBUG PrintfDebugWnd("DocWndAddDocFile -> (%d)[%s]\n",DocWndInfo.DocFileMax-1,DocWndInfo.DocFile[DocWndInfo.DocFileMax-1]); #endif end: DocWndInfoUnLock(); }
int ReadFromMailslot(HANDLE hmailslot, char *buffer, int *size) { DWORD dwMessageSize, dwMessageNum, dwMessageReadSize; BOOL bRes; int i; bRes = GetMailslotInfo(hmailslot,NULL,&dwMessageSize,&dwMessageNum,(LPDWORD)NULL); if(bRes==FALSE || dwMessageSize==MAILSLOT_NO_MESSAGE) return FALSE; for(i=0;i<10;i++){ bRes = ReadFile(hMailslot,buffer,dwMessageSize,&dwMessageReadSize,(LPOVERLAPPED)NULL); #ifdef W32GUI_DEBUG PrintfDebugWnd("[%s]\n",buffer); #endif if(bRes==TRUE){ break; } Sleep(300); } if(bRes==TRUE){ *size = (int)dwMessageSize; return TRUE; } else return FALSE; }