共用方式為


可變大小的資料結構

當使用可變大小的資料結構在 TAPI 與應用程式之間傳輸資訊時,應用程式會負責配置必要的記憶體。 配置的記憶體數量至少必須足以容納資料結構的固定部分,而且是由資料結構 之 dwTotalSize 成員中的應用程式所設定。 dwUsedSizedwNeededSize成員會由 TAPI 填入。 如果 dwTotalSize 小於固定部分的大小,則會傳回 LINEERR/ PHONEERR_STRUCTURETOOSMALL。 如果函式傳回成功,則固定部分的所有欄位都已填入。 dwUsedSizedwNeededSize成員可以進行比較,以判斷是否已填入所有變數元件,以及填入所有變數元件所需的空間量。

如果 dwNeededSize 等於 dwUsedSize,則所有固定和變數部分都已填入。 如果 dwNeededSize 大於 dwUsedSize,某些變數部分可能已填入,但未定義已填入的可變大小欄位。 不會截斷任何變數元件,而且因為空間不足而遭到截斷的變數元件,都會透過將其對應的 「Offset」 和 「Size」 元件設定為零來表示。 如果這些不是零 (,而且) 傳回任何錯誤,則表示有效、非結構變數部分資料的位移和大小。

應用程式一律可以藉由配置並指出結構的 dwNeededSize 位元組,並再次呼叫 「Get」 函式,直到函式傳回成功且 dwNeededSize 等於 dwUsedSize,來保證已填入所有變數部分。 這應該會在第二次嘗試時發生,但造成呼叫之間變動部分大小變更的競爭條件除外,這應該很少發生。

注意

不論編碼方式為何,所有文字字串都應該根據一般 C 字串處理慣例,以 Null終止。