データ構造
多くの EHLLAPI 関数は、アプリケーション・プログラムとの間の情報の受け渡し のために、定様式データ構造を使用します。各関数の説明では、データ構造のレイアウトを示します。EHLLAPI 関数との間で受け渡されるデータは、記述されているのとまったく 同じ、すなわちバイト単位で同じようにストレージ内に存在する必要があります。構造レイアウトは、IBM® 標準および WinHLLAPI の 16 ビットおよび 32 ビットのすべてのアプリケーションで同じであることに注意してください。IBM 拡張 32 ビット・アプリケーションのデータ構造は、4 バイトの位置合わせでパックされます。
適切なデータの位置合わせとレイアウトを確保するために、提供されているヘッダー・ファイルとデータ構造の定義を使用することを特にお勧めします。次の例は技術的には可能ですが、お勧めしません。
char QueryData[20]; // Not recommended
...
Func = HA_QUERY_SESSION_STATUS;
hllapi(&Func, QueryData, &Len, &Rc);
if (QueryData[13] == 'F') {
// ...this is a 5250 session
}
この関数は次のように記述することをお勧めします。
#include "hapi_c.h"
struct HLDQuerySessionStatus QueryData; // Recommended
...
Func = HA_QUERY_SESSION_STATUS;
hllapi(&Func, (char *)&QueryData, &Len, &Rc);
if (QueryData.qsst_sestype == 'F') {
// ...this is a 5250 session
}