version 2003
PA_ReceiveDocumentFromServer (docName; data) long
Parameter | Type | Description | |
docName | char * | Name of the received file | |
data | char * | Pointer to the document data | |
Function result | long | Received data size in bytes |
Description
While running under 4D Client, the routine PA_ReceiveDocumentFromServer lets the 4D Plug-in read a document located on the server machine.
Pass the name of the document to read on the server side in docName . The 4D plug-in MUST pass the short name of the document NOT the pathname to the document. The document must be located in the same folder/directory than the structure.
Pass a pointer to a buffer that will be filled with the data fork of the document in data.
The routine returns the size of received data in bytes.
NOTE:
This routine is available only with 4D Client. To detect if the 4D plug-in is running on 4D Client, use PA_Is4DClient
Depending on default settings or on previous calls to PA_UsePStrings or PA_UseCStrings, docName must be a Pascal or an ANSI C string.
After the call a pointer to a memory block holding the document contents is returned in data.
You first call the routine setting data to 0L to get the size of the needed buffer. Then you allocate this buffer and call the routine again.
IMPORTANT NOTE:
PA_ReceiveDocumentFromServer or PA_SendDocumentToServer deal only with the data fork of a document when used on a Macintosh platform.
NOTE:
Documents stored on a server machine and accessed using PA_ReceiveDocumentFromServer or PA_SendDocumentToServer are sent over the network and must fit into the memory of the workstation. It is therefore a good idea to refrain from using these entry points in small or medium size documents.
Example
Read the document "PrivatePrefs" on the server side
char *theDoc; long size; size = PA_ReceiveDocumentFromServer("\pPrivatePrefs", 0L); // Use Pascal string under MacOS if(PA_GetLastErro() == eER_NoEr) { theDoc = malloc(size); if(theDoc) { PA_ReceiveDocumentFromServer("\pPrivatePrefs", theDoc); /* . . . deal with theDoc . . . */ // cleanup free(theDoc); } }
See Also
Error Handling
Use PA_GetLastError to see if an error occurred