Knowledge Base

PRB: GetPrivateProfileString() Generates "Data Type Mismatch"

Article ID: 121416

Article Last Modified on 11/17/2003


APPLIES TO


This article was previously published under Q121416

SYMPTOMS

When you call the GetPrivateProfileString) Windows API function from within FoxPro for Windows and the UDFPARMS setting is REFERENCE, you will receive the error message "Data type mismatch."

CAUSE

This error occurs because GetPrivateProfileString() is expecting certain parameters to be passed by VALUE. With the UDFPARMS set to REFERENCE, you are sending all parameters by REFERENCE. The GetPrivateProfileString() function returns an error because it is expecting these parameters by VALUE. FoxPro interprets the error as a data type mismatch.

RESOLUTION

To prevent this behavior, set UDFPARMS to VALUE.

MORE INFORMATION

Steps to Reproduce Behavior

Type the following commands in the Command window:
   SET LIBRARY TO SYS(2004)+"FOXTOOLS.FLL"
   MRETURN=REPLICATE(CHR(0), 144)
   MREGISTER=REGFN("GETPRIVATEPROFILESTRING","CCC@CI","I")
   MCALL=CALLFN(MREGISTER,"WINDOWS","LOAD","",@MRETURN,256)
					
The last command will return the error message "Data type mismatch."

NOTE: A "FOXPROW caused a General Protection Fault in module <unknown>" error message occurs if UDFPARMS is set to VALUE.

Additional query words: VFoxWin FoxWin 2.50 2.50a 2.50b errmsg

Keywords: KB121416