Freigeben über


Bestätigt (CPI-C)

Der bestätigte Aufruf (Funktionsname cmcfmd) antwortet auf eine Bestätigungsanforderung des Partnerprogramms. Es informiert das Partnerprogramm, dass das lokale Programm keinen Fehler in den empfangenen Daten festgestellt hat. Da das Programm, das die Bestätigungsanforderung ausgibt, auf eine Bestätigung wartet, synchronisiert Bestätigt die Verarbeitung der beiden Programme.

Syntax


CM_ENTRY Confirmed(   
  unsigned char FAR *conversation_ID,    
    CM_INT32 FAR *return_code              
);  

Parameter

conversation_ID
Angegebener Parameter. Gibt den Bezeichner für die Unterhaltung an. Der Wert dieses Parameters wurde von Initialize_Conversation oder Accept_Conversation zurückgegeben.

return_code
Der von diesem Aufruf zurückgegebene Code. Die gültigen Rückgabecodes werden weiter unten in diesem Thema aufgeführt.

Rückgabecodes

CM_OK
Primärer Rückgabecode; Der Aufruf wurde erfolgreich ausgeführt.

CM_OPERATION_NOT_ACCEPTED
Primärer Rückgabecode; Ein vorheriger Vorgang für diese Unterhaltung ist unvollständig.

CM_OPERATION_INCOMPLETE
Primärer Rückgabecode; der Vorgang wurde nicht abgeschlossen (der Verarbeitungsmodus ist nur nicht blockiert) und wird noch ausgeführt. Das Programm kann Wait_For_Conversation ausgeben, um auf den Abschluss des Vorgangs zu warten, oder Cancel_Conversation , um den Vorgang und die Unterhaltung abzubrechen. Wenn Specify_Windows_Handle aufgerufen wurde, sollte die Anwendung auf die Benachrichtigung durch eine Microsoft® Windows-Nachricht® warten und nicht Wait_For_Conversation aufrufen.

CM_PROGRAM_PARAMETER_CHECK
Primärer Rückgabecode; Der durch conversation_ID angegebene Wert ist ungültig.

CM_PROGRAM_STATE_CHECK
Primärer Rückgabecode; Die Unterhaltung wurde nicht bestätigt, CONFIRM_SEND oder CONFIRM_DEALLOCATE Status angezeigt, als das Programm diesen Anruf ausgab.

CM_PRODUCT_SPECIFIC_ERROR
Primärer Rückgabecode; Ein produktspezifischer Fehler ist aufgetreten und wurde im Fehlerprotokoll der Produkte protokolliert.

Statusänderungen

Die Unterhaltung muss sich in einem der folgenden Zustände befinden, wenn das Programm bestätigt wird:

  • BESTÄTIGEN

  • CONFIRM_SEND

  • CONFIRM_DEALLOCATE

    Der neue Zustand wird durch den alten Zustand bestimmt – der Zustand der Unterhaltung, wenn das lokale Programm bestätigt ausgestellt hat. Der alte Zustand wird durch den status_received Wert des vorherigen Empfangsanrufs angegeben. In der folgenden Tabelle werden die möglichen Zustandsänderungen zusammengefasst, wenn return_code auf CM_OK festgelegt ist.

Alter Zustand Neuer Zustand
BESTÄTIGEN RECEIVE
CONFIRM_SEND SEND
CONFIRM_DEALLOCATE ZURÜCKSETZEN

Andere Rückgabecodes führen zu keiner Zustandsänderung.

Bemerkungen

Eine Bestätigungsanfrage wird von einem der folgenden Anrufe im Partnerprogramm ausgestellt:

  • Bestätigen.

  • Prepare_To_Receive , wenn der Vorbereitungs-empfangen-Typ auf CM_PREP_TO_RECEIVE_CONFIRM oder auf CM_PREP_TO_RECEIVE_SYNC_LEVEL festgelegt ist und die Synchronisierungsebene für Unterhaltungen auf CM_CONFIRM festgelegt ist.

  • Deallocate if the deallocate type is set to CM_DEALLOCATE_CONFIRM or to CM_DEALLOCATE_SYNC_LEVEL and the conversations synchronization level is set to CM_CONFIRM.

  • Send_Data unter folgenden Umständen:

    • Der Sendetyp ist auf CM_SEND_AND_CONFIRM festgelegt.

    • Der Sendetyp ist auf CM_SEND_AND_PREPARE_TO_RECEIVE festgelegt, und der Vorbereitungs-empfangen-Typ wird auf CM_PREPARE_TO_RECEIVE_CONFIRM festgelegt.

    • Der Sendetyp ist auf CM_SEND_AND_PREPARE_TO_RECEIVE festgelegt, der Vorbereitungs-empfangen-Typ wird auf CM_PREPARE_TO_RECEIVE_SYNC_LEVEL festgelegt, und die Synchronisierungsebene wird auf CM_CONFIRM festgelegt.

    • Der Sendetyp ist auf CM_SEND_AND_DEALLOCATE festgelegt, und der Deallocate-Typ wird auf CM_DEALLOCATE_CONFIRM festgelegt.

    • Der Sendetyp ist auf CM_SEND_AND_DEALLOCATE festgelegt, der Deallocate-Typ wird auf CM_DEALLOCATE_SYNC_LEVEL festgelegt, und die Synchronisierungsebene wird auf CM_CONFIRM festgelegt.

    Eine Bestätigungsanforderung wird vom lokalen Programm über den status_received Parameter "Receive" empfangen. Das lokale Programm kann nur dann bestätigt werden, wenn der parameter status_received auf einen der folgenden Werte festgelegt ist:

  • CM_CONFIRM_RECEIVED

  • CM_CONFIRM_SEND_RECEIVED

  • CM_CONFIRM_DEALLOC_RECEIVED