routproc 函式是一個範例路由程序。 必須在申請中提供。 動態存取模組(DMOD)會呼叫它,並附帶一個訊息,該訊息可能適用於此應用程式,也可能不是。DMOD 會依序呼叫路由程序,直到有人接受該訊息為止。
語法
DWORD routproc(
BUFHDR *msgptr,
USHORT locl,
USHORT retstat
);
參數
MSGPTR
指向 DMOD 傳遞給路由程序的訊息指標。
LOCL
接收訊息的區域性(若 retstat 表示訊息回傳),或是遺失路徑的區域性( retstat 表示路徑錯誤)。
RETSTAT
來電原因:
CEDINMSG (1)—訊息已返回。
CEDINLLN(2)—路徑誤差(見下方備註)。
傳回值
TRUE
路由程序已接受該訊息。
FALSE
訊息不是針對此路由程序。
備註
路由程序應先呼叫 sbpurcvx,該 sbpurcvx 處理所有 Open 回應訊息,具體如下:
SBPURCVX(及MSGPTR、 LOCL、 RETSTAT)
sbpurcvx 的回傳碼為 TRUE 表示 sbpurcvx 已接受該訊息;此應用程式已收到一個開啟錯誤回應,資源定位仍在進行中。 路由程序不應再處理該訊息,並應回傳 TRUE ,以防止 DMOD 呼叫後續路由程序。
sbpurcvx 的回傳代碼為 FALSE 表示路由程序應:
若訊息是針對此應用程式,請自行負責並回傳 TRUE ,以防止 DMOD 呼叫後續路由程序。
若訊息非用於此應用,則回傳 FALSE ,讓 DMOD 嘗試進一步的路由程序。
若回傳路徑錯誤, msgptr 將不會指向有效訊息,且不會再回傳該區域性值的功能管理介面(FMI)訊息。 應用程式負責結束所有使用此區域的會話。 路由程序必須回傳 FALSE。 這確保遺失的區域會被回報給所有其他路由程序。
若訊息是針對此應用程式,路由程序可立即處理或將訊息放入應用程式佇列,然後使用信號量發布應用程式。 欲了解更多資訊,請參閱 接收訊息。