i have fixed the problem , free the old memhandle after the new one on line.
2006/11/23, victorp king <[EMAIL PROTECTED]>:
>
> the line in red always returns error code "memErrInvalidParam "
>
> anybody can hele me ?
>
>
> static Boolean MainFormHandleEvent(EventPtr event) {
> FormPtr formP;
> Boolean handled;
> MemHandle mh;
> FieldPtr fldPtr;
> char *s ;
> char *label;
> char label0[30];
> char lable1[10];
> char lable2[50] = {'a'};
> UInt16 err;
> UInt16 volRefNum;
> UInt32 volIterator;
> MemHandle oldMh;
>
> if(event->eType == frmOpenEvent) {
> formP = FrmGetActiveForm();
> FrmDrawForm (formP);
> handled = true;
> }
> else if(event->eType == ctlSelectEvent) {
>
> switch(event->data.ctlSelect.controlID) {
> case CheckVolumnsBtn :
> volIterator = vfsIteratorStart;
> label = "No Volumns to Start";
> while(volIterator != vfsIteratorStop) {
> err = VFSVolumeEnumerate(&volRefNum, &volIterator);
>
> if(err == errNone){
> err = VFSVolumeGetLabel(volRefNum, label0, 16);
> StrCat(lable2, label0);
> }
> //label = "errorNone";
> else if(err == expErrNotOpen)
> label = "expErrNotOpen ";
> else if(err == vfsErrNoFileSystem)
> label = "vfsErrNoFileSystem";
> else if(err == vfsErrVolumeBadRef)
> label = "vfsErrVolumeBadRef ";
> else if(err == vfsErrBufferOverflow )
> label = "vfsErrBufferOverflow ";
> else if(err == vfsErrNameShortened )
> label = "vfsErrNameShortened ";
> else if(err == expErrEnumerationEmpty)
> label = "No Volumns";
> else if(err == sysErrParamErr)
> label = "NormalError";
> }
>
>
> mh = MemHandleNew(80);
> s = MemHandleLock(mh);
> StrCopy(lable1, "\0");
> StrCat(lable2, label0);
> StrCopy(s, lable2);
> label = NULL;
> MemHandleUnlock(mh);
> fldPtr = (FieldPtr) getObjectPtrByID(FrmGetActiveForm(),
> VolumnsText);
>
> oldMh = FldGetTextHandle(fldPtr);
>
> if(oldMh != NULL)
> err = MemHandleFree(oldMh);
>
> FldSetTextHandle(fldPtr, mh);
> FldDrawField(fldPtr);
>
> handled = true;
> default :
> handled = false;
> break;
> }
> }
> else {
> handled = false;
> }
>
> return handled;
> }
>
>
> -- For information on using the PalmSource Developer Forums, or to
> unsubscribe, please see http://www.palmos.com/dev/support/forums/
--
For information on using the PalmSource Developer Forums, or to unsubscribe,
please see http://www.palmos.com/dev/support/forums/