typedef struct _RECT { LONG left; LONG top; LONG right; LONG bottom; } RECT, *PRECT;You can not pass this structure to an API function using a VFP array, since the array element occupies more than four bytes. Use STRING instead.
Chr(13) + Chr(12) + Chr(11) + Chr(10)Why? Because 43981 in hex notation is presented as 0xABCD. This is it. You just assemble four bytes -- from LOwest to HIghest:
0xd = 13 0xc = 12 0xb = 11 0xa = 10So if you need to assemble the RECT structure with (10,0,100,100) do this:
cRECT = Chr(10) + Chr(0) + Chr(0) + Chr(0) +; Chr(0) + Chr(0) + Chr(0) + Chr(0) +; Chr(100) + Chr(0) + Chr(0) + Chr(0) +; Chr(100) + Chr(0) + Chr(0) + Chr(0)And such input parameter must be declared as STRING or STRING @. So your declaration should look like the following:
DECLARE INTEGER IS3DrawSmoothTextOnRGB IN ISource30 INTEGER @ pRGB,; LONG uWidth,; LONG uHeight,; LONG uRowStride,; STRING @ pText,; STRING @ pFontName,; LONG uFontHeight,; LONG uSmoothingFactor,; STRING @ pTextRect,; LONG uDrawFlags,; LONG uFlags,; INTEGER textColorAll parameters passed by reference must be allocated before calling external function.