|
![]() |
![]() |
version 2003
PA_GetVariable (vName) → PA_Variable
Parameter | Type | Description | |
vName | char * | → | Name of process/interprocess variable to access |
Function result | PA_Variable | ← | Value of the variable whose name is vName |
Description
The routine
PA_GetVariable
returns the content of the variable whose name is passed in
vName
.
To get the content of an interprocess variable,
vName
must start by the interprocess sign ("<>" under Windows or the diamond under MacOS)
If the 4D Plug-in attempts to access a non-existing variable, the
PA_Variable
data structure returned with a type =
eVK_Undefined
(this can be get by the
PA_GetVariableKind
routine) and
PA_GetLastError
returns
eER_NoErr
.
NOTE:
Depending on default settings and on previous calls to
PA_UsePStrings
or
PA_UseCStrings
,
vName
must be a Pascal or a C string.
IMPORTANT NOTE:
For Text, Picture, and BLOB, remember that the handles to the data of those structures belong to 4th Dimension. Do not dispose of it or call
PA_ClearVariable
.
Examples
(1) Checking the kind of a variable.
// We are waiting for a longint variable
PA_Variable aVar;
aVar = PA_GetVariable("\pmyPrivateVar"); // using Pstring on a Mac
if(PA_GetVariableKind(aVar) != eVK_Longint)
PA_Alert("\pI expected a long integer variable");
(2) Get the value of a system variable (OK).
char GetOK ()
{
PA_Variable ok;
char okValue = (char) 0;
// Note that in interpreted mode, OK may be undefined
ok = PA_GetVariable("OK"); // using C strings on Windows
if(PA_GetLastError() == eER_NoErr)
{
switch (PA_GetVariableKind(ok))
{
case eVK_Real:
if (PA_GetRealVariable(ok) != 0.0 )
okValue = 1;
break;
case eVK_Longint:
if (PA_GetLongintVariable(ok) != 0)
okValue = 1;
break;
}
}
return okValue;
}
See Also
Error Handling
Use
PA_GetLastError
to see if an error occurred.