The EXURLFILEIOCALLBACKDATA and EXURLFILEIOCALLBACKDATAW structures are defined as follows:
typedef struct EXURLFILEIOCALLBACKDATAtag { VTDWORD dwSize; VTBYTE szURLString[VT_MAX_URL]; VTDWORD dwFileID; } EXURLFILEIOCALLBACKDATA; typedef struct EXURLFILEIOCALLBACKDATAWtag { VTDWORD dwSize; VTWORD wzURLString[VT_MAX_URL]; VTDWORD dwFileID; } EXURLFILEIOCALLBACKDATAW;
dwSize: Set by Image Export to sizeof(EXURLFILEIOCALLBACKDATA) or sizeof(EXURLFILEIOCALLBACKDATAW).
szURLString / wzURLString: This parameter can be set by the developer to a new URL that references the newly created file. This parameter is optional unless the pSpec provided by the developer points to something that cannot be used as a URL (as when using redirected IO, for example). In that case, this parameter must be set.
This string is written into any output file that needs to reference the newly created file, with appropriate conversions between single and double byte output. Because this parameter is a URL, it is assumed to be URL encoded. When used in conjunction with dwSpecType and pSpec, this parameter can be used to generate almost any structure or location for the output files, including things like writing the output files into a database and then using a CGI mechanism to retrieve them.
The current size limitation is 2048 characters. If the size exceeds this limit, the URL will be truncated and rendered useless.
dwFileID: Set by the product. This is used as a unique identifier for each output file generated. It may be used for an OEM-specific purpose. When using HTML Export, this identifier is always set to zero when this callback is made as the result of a {## copy}
statement in the template.
Return Value
SCCERR_OK: dwSpecType, pSpec and szURLString (or wzURLString) have been populated with valid values.
SCCERR_NOTHANDLED: Default naming should be used.
SCCERR_FILEOPENFAILED: Some error was encountered creating a new output.