//-------------------------------------------------------------------------- void SndObjGetFmt(BYTE *lpMem,LOADPATH lPath, LOADHANDLE lBlock, LOADHANDLE lID, LPSNDMIXFORMAT lpFmt, LPDWORD lpLengthData) { void *pf = 0; char nameBuf[MAX_PATH]; _WAVHEADER wavHeader; LPPACKEDFILE lpPf=NULL; if(lpMem) { COPYMEMORY(&wavHeader,lpMem,sizeof(wavHeader)); } else { if(lBlock[0]=='\0') { BuildFullPath(nameBuf,lPath, lID,sndDriveContext,SNDIDEXT); pf=fopen(nameBuf,"rb"); ASSERTFILE(pf,nameBuf); fread(&wavHeader, 1, sizeof( _WAVHEADER ), pf); } else { BuildFullPath(nameBuf,lPath, lBlock, sndDriveContext,SNDBLOCKEXT); // 'c' ?? lpPf=PkPackInit(nameBuf, 1, NULL); ASSERTFILE(lpPf,nameBuf); BuildFullPath(nameBuf,NULL, lID, sndDriveContext,SNDIDEXT); pf=Pkfopen(lpPf,nameBuf,"rb"); ASSERTFILE(pf,nameBuf); Pkfread(&wavHeader, 1, sizeof( _WAVHEADER ), pf); } } lpFmt->nSamplesPerSec=wavHeader.dwSamplesPerSec; lpFmt->wBitsPerSample=wavHeader.wBitsPerSample; lpFmt->nChannels=wavHeader.wChannels; *lpLengthData=wavHeader.dwDataLength; if (!lpMem) { if (lBlock[0]=='\0' && pf) fclose(pf); else { if (pf) Pkfclose(pf); PkPackClose(lpPf); } } return; }
size_t Memfread(void *ptr, size_t size, size_t n, LPMEMFILE lpMemFile) { size_t rval=0; size_t memRead=0; void *readPtr; if(lpMemFile!=NULL && !lpMemFile->eof) { readPtr=lpMemFile->lpMem+lpMemFile->poscur; memRead=n*size; rval=n; if(lpMemFile->poscur+ memRead>= lpMemFile->size) { memRead=lpMemFile->size-lpMemFile->poscur; rval=memRead/size; lpMemFile->eof=1; lpMemFile->poscur=lpMemFile->size; } else lpMemFile->poscur+=memRead; COPYMEMORY(ptr,readPtr,memRead); } return rval; }
void WndData::SaveWindowData ( ) { COLORREF clrFG, clrBG; WORD pattern[8]; OWndLaySetTitle (m_oiWnd, m_szTitle); OWndLaySetInitialClientRect (m_oiWnd, &m_rcInitClient); OWndLaySetHasTitleBar (m_oiWnd, (m_style & WF_TITLEBAR) ? TRUE : FALSE); OWndLaySetHasSysmenu (m_oiWnd, (m_style & WF_SYSMENU) ? TRUE : FALSE); OWndLaySetHasMaxbutton (m_oiWnd, (m_style & WF_MAXBUTTON) ? TRUE : FALSE); OWndLaySetHasMinbutton (m_oiWnd, (m_style & WF_MINBUTTON) ? TRUE : FALSE); OWndLaySetHasHScroll (m_oiWnd, (m_style & WF_HORZSCROLL) ? TRUE : FALSE); OWndLaySetHasVScroll (m_oiWnd, (m_style & WF_VERTSCROLL) ? TRUE : FALSE); OWndLaySetHasResizeFrame (m_oiWnd, (m_style & WF_RESIZEBORDER) ? TRUE : FALSE); OWndLaySetHasDialogFrame (m_oiWnd, (m_style & WF_DIALOGFRAME) ? TRUE : FALSE); OWndLaySetIsModal (m_oiWnd, (m_style & WF_MODAL) ? TRUE : FALSE); OWndLaySetIsPopup (m_oiWnd, (m_style & WF_ALWAYSONTOP) ? TRUE : FALSE); OWndLaySetIsInitVisible (m_oiWnd, (m_style & WF_INITVISIBLE) ? TRUE : FALSE); OWndLaySetDrawsSmooth (m_oiWnd, (m_style & WF_DRAWSMOOTH) ? TRUE : FALSE); OWndLaySetQuitsOnClose (m_oiWnd, (m_style & WF_QUITONCLOSE) ? TRUE : FALSE); OWndLaySetInitialWindowState(m_oiWnd, m_nInitCmdShow); OWndLaySetMaxSize (m_oiWnd, m_ptMaxSize); OWndLaySetHasMaxSize (m_oiWnd, m_fLimitMaxSize); OWndLaySetMinSize (m_oiWnd, m_ptMinSize); OWndLaySetScrollSize (m_oiWnd, m_ptScrollSize); OWndLaySetMenuBarID (m_oiWnd, m_oiMenu); // save the colors and pattern clrFG = m_fill.GetTrueFGColor(); clrBG = m_fill.GetTrueBGColor(); COPYMEMORY(pattern, FillAttrib::GetFillPattern(-1, &m_fill), sizeof(pattern)); OWndLaySetColorsAndPattern(m_oiWnd, clrBG, clrFG, clrBG, clrFG, pattern, sizeof(pattern)); }