ihConfiguration Functions

extern ihC_DEC ihAPIStatus __stdcall ihConfigurationGetProperties 
(ihServerHandle hServer, ihConfigurationProperties *Properties);
extern ihC_DEC void __stdcall ihConfigurationFreeProperties 
(ihConfigurationProperties *Properties);

You can get information about the Data Archiver in addition to reading and writing data.

ihServer Function

extern ihC_DEC ihAPIStatus  stdcall ihServerConnect(ihString ServerName, ihString Username, ihString Password,
ihString BufferFileName, ihServerHandle *hServer); 
extern ihC_DEC ihAPIStatus  stdcall ihServerConnectClient(ihString ServerName, ihString Username, ihString 
Password, ihString BufferFileName, ihServerHandle *hServer, ihString ClientName);  
extern ihC_DEC ihAPIStatus  stdcall ihServerDisconnect(ihServerHandle hServer);
extern ihC_DEC ihBoolean stdcall ihServerIsConnected(ihServerHandle hServer);
You need to connect to the server before you start working.
extern ihC_DEC ihAPIStatus  stdcall ihServerAdd(ihString ServerName, ihString Username, ihString Password, 
ihBoolean IsDefault, ihString BufferFileName, ihServerHandle *hServer,ihULong ConnectionTimeout);  
extern ihC_DEC ihAPIStatus  stdcall ihServerDelete(ihString ServerName);
extern ihC_DEC ihAPIStatus  stdcall ihServerOpenRecordset(ihString ServerNameMask, ihServerRecordset 
*ServerRecordset); 
extern ihC_DEC void  stdcall ihServerCloseRecordset(ihServerRecordset *ServerRecordset);

You can set up a collection of servers with their timeouts and usernames. However, you can simply call connect to establish a connection.

ihTag Functions

extern ihC_DEC ihAPIStatus  stdcall ihTagAdd(ihServerHandle hServer, ihTagFields *hFields, ihTagProperties
*hTag); 
extern ihC_DEC ihAPIStatus  stdcall ihTagOpenRecordset(ihServerHandle hServer, ihTagFields *RequestedFields, 
ihTagCriteria *Criteria, ihTagFields *CriteriaFields, ihTagRecordset *TagRecordset);
extern ihC_DEC ihAPIStatus  stdcall ihTagGetProperties(ihServerHandle hServer, ihString Tagname, ihTagFields 
*hFields, ihTagProperties *hTag);

You can add and browse tags using these functions

ihData Functions

extern ihC_DEC ihAPIStatus  stdcall ihDataAdd(ihServerHandle hServer, ihUNSIGNED long NumberOfTags, ihString 
*Tagnames, ihDataProperties *DataValues, ihAPIStatus *ErrorStatuses, ihBoolean WaitForReply, ihBoolean ErrorOnRep 

You can add and delete data and subscribe to data changes

ihDataStore Functions

extern ihC_DEC ihAPIStatus  stdcall ihDataStoreOpenRecordset(ihServerHandle hServer, ihString 
DataStoreMask, ihDataStoreRecordset *Recordset);

You need not configure data stores, the defaults should be fine.

ihComment Functions

extern ihC_DEC ihAPIStatus  stdcall ihCommentAdd (ihServerHandle hServer, ihString Tagname, ihTimeStruct 
*CommentAdd, ihCommentData *ihCommentData, ihString SuppliedUser, ihString SuppliedPassword);

You can add comments to data and get them back when you read the data but this is not commonly used.

ihTime Functions

extern ihC_DEC void stdcall ihTimeLCLPartsToUTCStruct(int Year, int Month, int Day, int Hour, int Minute, 
int MilliSecond, ihTimeStruct *UTCTime); 
extern ihC_DEC void stdcall ihTimeUTCStructToLCLParts(int *Year, int *Month, int *Day, int *Hour, int 
*Minute, int *Second, int *MilliSecond, ihTimeStruct *UTCTime);

The System API has utility functions for working with time zones and daylight saving time.

ihUtil Functions

extern ihC_DEC void stdcall ihUtilAnsiToUnicode(char *MBStr, ihChar *WCStr);
extern ihC_DEC void stdcall ihUtilUnicodeToAnsi(char *MBStr, ihChar *WCStr);

The System API has utility functions for converting between Unicode and ANSI strings.