/********************************************************************* * * FUNCTION: SaveValue * * ARGUMENTS: None * * RETURNS: None * * DESCRIPTION: * * RESTRICTIONS: * *********************************************************************/ void SaveValue(char *ptr, USR_DYNAMIC_INITIALIZE *ptrUDI) { if (ptr) { //parameter was found in response... if (ptrUDI->fieldType == WORD_TYPE) { *(UINT16*)ptrUDI->fieldDataSource = atoi(ptr); } else if (ptrUDI->fieldType == DWORD_TYPE) { *(UINT32*)ptrUDI->fieldDataSource = atol(ptr); } else if(ptrUDI->fieldType == STRING_TYPE) { (void)strcpy((char*)ptrUDI->fieldDataSource, StripPlus(ptr)); } else //float { *(float*)ptrUDI->fieldDataSource = ptrToFloat(ptr); } } }
//*********************************************************************** LRESULT FAR PASCAL MMIOJunkIOProc(LPSTR lpmmioinfo, UINT wMsg, LPARAM lParam1, LPARAM lParam2) //*********************************************************************** { LRESULT lRes = MMSYSERR_NOERROR; MMIOINFO *pInfo = (MMIOINFO *)lpmmioinfo; switch(wMsg) { case MMIOM_READ: lRes = MMIOJunkRead(pInfo, (LPBYTE)lParam1, lParam2); break; case MMIOM_SEEK: { HFILE hFile = pInfo->adwInfo[0]; MMIOSeek(pInfo, hFile, lParam1, lParam2); } break; case MMIOM_WRITE: break; case MMIOM_OPEN: { LPSTR lpszFileName = (LPSTR)lParam1; char szNewName[_MAX_PATH]; // If just parsing the name... if (pInfo->dwFlags & MMIO_PARSE) { StripPlus(szNewName, lpszFileName); //lRes = TRUE; } // Else, assume we are to open the file else { // Get rid of the +abc stuff StripPlus(szNewName, lpszFileName); // Open the file and stuff the handle in user info HFILE hFile = _lopen(szNewName, OF_READ); pInfo->adwInfo[0] = hFile; pInfo->lDiskOffset = 0; } lFrameCount = 0; //pInfo->hmmio = hFile; } break; case MMIOM_CLOSE: { HFILE hFile = (HFILE)pInfo->adwInfo[0]; if (hFile) _lclose(hFile); } break; } return lRes; }
/********************************************************************* * * FUNCTION: SaveValue * * ARGUMENTS: None * * RETURNS: None * * DESCRIPTION: * * RESTRICTIONS: * *********************************************************************/ void SaveValue(char *ptr, USR_DYNAMIC_INITIALIZE *ptrUDI) { UINT16 wType; if (ptr) { //parameter was found in response... wType = ptrUDI->fieldType & DATA_TYPE_MASK; switch (wType) { case BYTE_TYPE: *(UINT8*)ptrUDI->fieldDataSource = (BYTE)(atoi(ptr)); break; case WORD_TYPE: *(UINT16*)ptrUDI->fieldDataSource = atoi(ptr); break; case DWORD_TYPE: *(UINT32*)ptrUDI->fieldDataSource = atol(ptr); break; case STRING_TYPE: (void)strcpy((char*)ptrUDI->fieldDataSource, StripPlus(ptr)); break; case FLOAT_TYPE: *(float*)ptrUDI->fieldDataSource = ptrToFloat(ptr); break; case BIT_0_TYPE: if ((*(UINT8*)ptr) & 0x01) *((UINT8*)ptrUDI->fieldDataSource) |= 0x01; else *((UINT8*)ptrUDI->fieldDataSource) &= ~0x01; break; case BIT_1_TYPE: if ((*(UINT8*)ptr) & 0x01) *((UINT8*)ptrUDI->fieldDataSource) |= 0x02; else *((UINT8*)ptrUDI->fieldDataSource) &= ~0x02; break; case BIT_2_TYPE: if ((*(UINT8*)ptr) & 0x01) *((UINT8*)ptrUDI->fieldDataSource) |= 0x04; else *((UINT8*)ptrUDI->fieldDataSource) &= ~0x04; break; case BIT_3_TYPE: if ((*(UINT8*)ptr) & 0x01) *((UINT8*)ptrUDI->fieldDataSource) |= 0x08; else *((UINT8*)ptrUDI->fieldDataSource) &= ~0x08; break; case BIT_4_TYPE: if ((*(UINT8*)ptr) & 0x01) *((UINT8*)ptrUDI->fieldDataSource) |= 0x10; else *((UINT8*)ptrUDI->fieldDataSource) &= ~0x10; break; case BIT_5_TYPE: if ((*(UINT8*)ptr) & 0x01) *((UINT8*)ptrUDI->fieldDataSource) |= 0x20; else *((UINT8*)ptrUDI->fieldDataSource) &= ~0x20; break; case BIT_6_TYPE: if ((*(UINT8*)ptr) & 0x01) *((UINT8*)ptrUDI->fieldDataSource) |= 0x40; else *((UINT8*)ptrUDI->fieldDataSource) &= ~0x40; break; case BIT_7_TYPE: if ((*(UINT8*)ptr) & 0x01) *((UINT8*)ptrUDI->fieldDataSource) |= 0x80; else *((UINT8*)ptrUDI->fieldDataSource) &= ~0x80; break; } } }