Freigeben über


Confirmed (CPI-C)

Der Bestätigte Aufruf (Funktionsname cmcfmd) antwortet auf eine Bestätigungsanforderung aus dem Partnerprogramm. Das Partnerprogramm wird darüber informiert, dass das lokale Programm keinen Fehler in den empfangenen Daten erkannt hat. Da das Programm, das die Bestätigungsanforderung ausgibt, auf eine Bestätigung wartet, synchronisiert Confirmed 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 noch nicht abgeschlossen (der Verarbeitungsmodus ist nur nicht blockiert) und wird noch ausgeführt. Das Programm kann Wait_For_Conversation ausgeben, um den Abschluss des Vorgangs abzuwarten, oder Cancel_Conversation , den Vorgang und die Unterhaltung abzubrechen. Wenn Specify_Windows_Handle aufgerufen wurde, sollte die Anwendung auf eine 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 befand sich nicht im Status CONFIRM, CONFIRM_SEND oder CONFIRM_DEALLOCATE, als das Programm diesen Aufruf ausgegeben hat.

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

Zustandsänderungen

Die Unterhaltung muss sich in einem der folgenden Zustände befinden, wenn das Programm "Bestätigt" ausgibt:

  • BESTÄTIGEN

  • CONFIRM_SEND

  • CONFIRM_DEALLOCATE

    Der neue Zustand wird durch den alten Zustand bestimmt– der Zustand der Unterhaltung, als das lokale Programm Bestätigt ausgegeben hat. Der alte Zustand wird durch den status_received Wert des vorherigen Empfangsaufrufs angegeben. In der folgenden Tabelle sind 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 RESET

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

Hinweise

Eine Bestätigungsanforderung wird durch einen der folgenden Aufrufe im Partnerprogramm ausgegeben:

  • Bestätigen.

  • Prepare_To_Receive , wenn der Empfangsvorbereitungstyp 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 , wenn der Deallocate-Typ auf CM_DEALLOCATE_CONFIRM oder auf CM_DEALLOCATE_SYNC_LEVEL festgelegt ist und die Synchronisierungsebene für Unterhaltungen auf CM_CONFIRM festgelegt ist.

  • 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 Vorbereitungstyp für den Empfang ist auf CM_PREPARE_TO_RECEIVE_CONFIRM festgelegt.

    • Der Sendetyp ist auf CM_SEND_AND_PREPARE_TO_RECEIVE festgelegt, der Typ für die Vorbereitung auf den Empfang auf CM_PREPARE_TO_RECEIVE_SYNC_LEVEL und die Synchronisierungsebene auf CM_CONFIRM festgelegt.

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

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

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

  • CM_CONFIRM_RECEIVED

  • CM_CONFIRM_SEND_RECEIVED

  • CM_CONFIRM_DEALLOC_RECEIVED