データ構造

多くの 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
    }