# ジョブ実行結果通知API

リモートホストにジョブの実行結果を通知するAPIです。

## 構文

    int __stdcall  hulsndrc( LPCSTR lpszJobName , LPCSTR lpszHostName ,
                  LPCSTR lpszMsg , SHORT nRc , INT nRetryCnt , INT nRetryTime );

## パラメーター説明

LPCSTR lpszJobName（IN）

  通知ジョブ名を指定

  60バイト以内の文字列で指定します。省略する場合は“NULL”を指定します。

LPCSTR lpszHostName（IN）

  接続先ホスト名を指定

  68バイト以内の文字列で指定します。

LPCSTR lpszMsg（IN）

  送信メッセージを指定

  128バイト以内の文字列で指定します。省略する場合は“NULL”を指定します。

SHORT nRc（IN）

  送信ステータスを指定

  “0”～“9999”の範囲で指定します。

INT nRetryCnt（IN）

  相手ホストへのコネクションリトライ回数を指定

  “0”～“99999”の範囲で指定します。

INT nRetryTime（IN）

  相手ホストへのコネクションリトライ間隔を指定（秒）

  “0”～“99999”の範囲で指定します。

## 戻り値

正常時は「0」です。エラー時のステータスはhulsndrc.exeのエラーコードと同様です。

詳細は、以下を参照してください。

HULFT10 for Windows エラーコード・メッセージ : ジョブ実行結果通知コマンド（hulsndrc.exe）

## 使用例

### Visual C++から使用する場合

    #include <windows.h>
    #include <stdio.h>

    typedef INT (__stdcall *LPHULSNDRC)(
    LPCSTR lpszJobName, LPCSTR lpszHostName,
    LPCSTR lpszMsg, SHORT nRc, INT nRetryCnt,
    INT nRetryTime);

    int main()
    {
        CHAR szJobName[60+1];
        CHAR szHostName[68+1];
        CHAR szMsg[128+1];
        SHORT nRC;
        INT nRetryCnt;
        INT nRetryTime;
        HMODULE hHulDll;
        HMODULE hApiDll;
        LPHULSNDRC lpHulsndrc;
        INT nStatus;

        strcpy_s(szJobName, sizeof(szJobName), "Job_0001");
        strcpy_s(szHostName, sizeof(szHostName), "host0001");
        strcpy_s(szMsg, sizeof(szMsg), "Message");
        nRC = 0;
        nRetryCnt = 10;
        nRetryTime = 1;

        hApiDll = LoadLibraryEx("C:\\HULFT Family\\hulft10\\bin\\hulapi.dll", NULL,
        LOAD_WITH_ALTERED_SEARCH_PATH);
        if (hApiDll == NULL)
        {
            printf("Unable to load hulapi.dll."
                "(Error code = %lu)\n", GetLastError());
            FreeLibrary(hHulDll);
            return 2;
        }
        lpHulsndrc = (LPHULSNDRC)GetProcAddress(hApiDll, "hulsndrc");
        if (lpHulsndrc == NULL)
        {
            printf("Unable to retrieves the address of HULFT API."
            "(Error code=%lu)\n", GetLastError());
            FreeLibrary(hApiDll);
            FreeLibrary(hHulDll);
            return 3;
        }
        nStatus = lpHulsndrc(szJobName, szHostName, szMsg, nRC, nRetryCnt, nRetryTime);
        if (nStatus == 0)
        {
            printf("Terminated normally.\n");
        }
        else
        {
            printf("Error occurred when calling HULFT API."
            "(Returned value=%d)\n", nStatus);
        }
        FreeLibrary(hApiDll);
        FreeLibrary(hHulDll);
        return 0;
    }