Writes the existing outline information to disk.
Syntax
ESS_FUNC_M EssOtlWriteOutline (hOutline, pObject);
| Parameter | Data Type | Description |
|---|---|---|
hOutline | ESS_HOUTLINE_T | Outline context handle. |
pObject | ESS_POBJDEF_T | Outline object to write. |
Notes
If you are saving the outline as a server object, the outline is initially saved as a .OTN file. You should then call EssOtlRestructure() to create the actual .OTL file.
If you are saving the outline as a server object, the object name must be the same as the database name.
The database must already exist if you are saving a server outline object, or a client outline object to a local database.
This call fails if the outline is not currently locked by the specified user (hCtx parameter in the ESS_OBJDEF_T structure).
Return Value
Returns 0 if successful; otherwise one of the following:
OTLAPI_BAD_OBJTYPE
OTLAPI_ERR_NOTVERIFIED
Access
This function requires you to have the appropriate level of access to the specified application and/or database to contain the outline object. To write the outline object, you must have Application Designer or Database Designer privilege (ESS_PRIV_APPDESIGN or ESS_PRIV_DBDESIGN) for the specified application or database containing the outline.
Example
#include <essapi.h>
#include <essotl.h>
ESS_STS_T sts = 0;
ESS_HOUTLINE_T hOutline;
ESS_OBJDEF_T Object;
ESS_APPNAME_T szAppName;
ESS_DBNAME_T szDbName;
ESS_OBJNAME_T szFileName;
memset(&Object, '\0', sizeof(Object));
Object.hCtx = hCtx;
Object.ObjType = ESS_OBJTYPE_OUTLINE;
strcpy(szAppName, "Sample");
strcpy(szDbName, "Basic");
strcpy(szFileName, "Basic");
Object.AppName = szAppName;
Object.DbName = szDbName;
Object.FileName = szFileName;
sts = EssOtlOpenOutline(hCtx, &Object, ESS_TRUE,
ESS_TRUE, &hOutline);
/* body of code */
if (!sts)
{
sts = EssOtlWriteOutline(hOutline, &Object);
}
/* restructure db using EssOtlRestructure() */See Also