# 簡易転送配信要求API

簡易転送配信要求を発行するAPIです。

## 構文

    INT __stdcall utlsendit( LPCSTR lpszFileName , LPCSTR lpszHostName ,
                  LPCSTR lpszRcvLocationPath , LPCSTR lpszRcvFileName ,
                  TCHAR cMode , USHORT portnum ,SHORT nPriority , BOOL bSync );

## パラメーター説明

LPCSTR lpszFileName（IN）

  配信したいファイル名を指定

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

LPCSTR lpszHostName（IN）

  配信先ホスト名を指定

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

LPCSTR lpszRcvLocationPath（IN）

  集信ファイルの保存先を指定

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

LPCSTR lpszRcvFileName（IN）

  集信ファイル名を指定

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

TCHAR cMode（IN）

  転送タイプを指定

  t

    : テキスト転送

  b

    : バイナリ転送

USHORT portnum（IN）

  集信側ホストのポート番号を指定

  “1”～“65535”の範囲で指定します。省略する場合は“0”を指定します。

  省略すると、“30000”が設定されます。

SHORT nPriority（IN）

  転送優先度を指定

  “1”～“256”の範囲で指定します。省略する場合は“0”を指定します。

BOOL bSync（IN）

  同期転送フラグを指定

  TRUE

    : 同期転送する

  FALSE

    : 同期転送しない

## 戻り値

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

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

HULFT10 for Windows エラーコード・メッセージ : 配信と集信のコマンド異常終了時の終了ステータス

## 使用例

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

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

    typedef INT (__stdcall *LPUTLSENDIT)(
            LPCSTR lpszFileName, LPCSTR lpszHostName,
            LPCSTR lpszRcvLocationPath, LPCSTR lpszRcvFileName,
            TCHAR cMode, USHORT portnum, SHORT nPriority, BOOL bSync, INT nWait);

    int main()
    {
        CHAR szFileName[200+1];
        CHAR szHostName[68+1];
        CHAR szRcvLocationPath[200+1];
        CHAR szRcvFileName[200+1];
        CHAR cMode;
        USHORT portnum;
        SHORT nPriority;
        BOOL bSync;
        INT nWait;
        HMODULE hHulDll;
        HMODULE hApiDll;
        LPUTLSENDIT lpUtlsendit;
        INT nStatus;

        strcpy_s(szFileName, sizeof(szFileName), "C:\\HULFT Family\\sndfile.txt");
        strcpy_s(szHostName, sizeof(szHostName), "RCV_HOST");
        strcpy_s(szRcvLocationPath, sizeof(szRcvLocationPath), "");
        strcpy_s(szRcvFileName, sizeof(szRcvFileName), "");
        cMode = 'T';
        portnum = 30000;
        nPriority = 50;
        bSync = TRUE;
        nWait = 300;

        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;
        }
        lpUtlsendit = (LPUTLSENDIT)GetProcAddress(hApiDll, "utlsendit");
        if (lpUtlsendit == NULL)
        {
            printf("Unable to retrieves the address of HULFT API."
                "(Error code=%lu)\n", GetLastError());
            FreeLibrary(hApiDll);
            FreeLibrary(hHulDll);
            return 3;
        }
        nStatus = lpUtlsendit(szFileName, szHostName, szRcvLocationPath, szRcvFileName,
            cMode, portnum, nPriority, bSync, nWait);
        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;
    }