PASSSTRUCT 結構

PASSSTRUCT 結構的定義如下:

語法

  
typedef struct tagPassParm {  
    WORD    parm_length;  
    WORD    exit_code;  
    WORD    in_length;  
    LPBYTE  in_addr;  
    WORD    out_length;  
    LPBYTE  out_addr;  
    WORD    trns_id;  
    WORD    in_page;  
    WORD    out_page;  
    WORD    option;  
} PASSSTRUCT;  

成員

parm_length
提供的 參數。 傳遞的結構長度,通常設定為 24。 如果不需要或使用 選項 成員,則可以將此參數設定為 22。

exit_code
提供和傳回的參數。 在專案上,此成員必須設定為零。 傳回時,此成員會指出結束狀態。 傳回 exit_code 值的法律值如下:

0

表示函式成功完成的一般結束代碼。

1

不支援要求的轉換。

12

exit_code欄位未正確初始化為零。

128

來源輸入字串中的最後一個字元是 DBCS 前置位元組。

256

無法順利完成轉換,因為產生的轉換目的地字串長度超過 65535 個位元組。

257

嘗試載入其中一個檔案並初始化其中一個 TrnsDTx.dll 檔案時發生錯誤。

in_length
提供的 參數。 以位元組為單位指定輸入來源字串的長度。

in_addr
提供的 參數。 緩衝區的指標,其中包含要轉換的來源字串。

out_length
提供和傳回的參數。 指定輸出轉譯字串的可用長度上限,以位元組為單位。 傳回時,此成員會在成功時設定為已轉換輸出字串的長度,或緩衝區太小時所需的輸出緩衝區長度。

out_addr
提供的 參數。 緩衝區的指標,將在轉換之後包含輸出目的地字串。

trns_id
提供的 參數。 轉換識別碼,一律為零。

in_page
提供的 參數。 指定傳入來源字串的字碼頁。

out_page
提供的 參數。 指定輸出翻譯字串的字碼頁。

選項
如果parm_length設定為 24 則提供和傳回的參數。 做為提供的參數,這會指定一組可套用至翻譯程式的選項。 這些選項的可能值如下所示:

位 15-9

保留的。

位 8

將移出 (SO) /shift, (SI) 個位元組新增至轉換的輸出字串。

位 3-7

保留的。

位 2

如果設定此位,則使用 IBM 指定的 1 位元組程式碼資料表轉換輸入字串。 只有在從字碼頁 932 轉換為下列其中一個字碼頁時,此選項才有效:037、290、930 或 931。

如果這個位為零,則使用使用 SYSCTBL 公用程式建立的轉換資料表,轉換輸入來源字串。

如果是雙位元組字元,請一律使用 SYSCTBL 公用程式所建立的轉換資料表。

SYSCTBL.EXE 檔案是主機整合伺服器隨附的公用程式程式,提供可用來建立自訂轉換資料表以搭配 TrnsDT 函式使用的工具。

位 1

如果設定此位,則表示輸入來源字串開頭為 2 位元組字元。 一般而言,主機資料一律會在配對中包含 SO/SI 控制字元,但在轉換混合資料字串的一部分時,必須從不含 SO 控制字元的雙位元組字元開始轉換。 在此情況下,資料本身沒有足夠的資訊來判斷資料是否為雙位元組,因此必須設定位 1。

位 0

如果設定此位,則表示輸入來源字串包含 SO/SI 控制字元。 位 8 和位 0 應該設定如下:

從電腦轉換成主機位 8=1,位 0 =0 從主機轉換成 PC Bit 8=0,位 0=1

傳回時,如果最後一個字元是雙位元組字元, 選項 會設定為 4。