Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.0 (Deutsch) » UltraLite - C- und C++-Programmierung » Anwendungsentwicklung » UltraLite-Anwendungen für Windows Mobile entwickeln » Synchronisation unter Windows Mobile

 

ActiveSync-Synchronisation hinzufügen (MFC)

Wenn Sie Microsoft Foundation Classes benutzen, um Ihre Anwendung zu entwickeln, können Sie die Synchronisationsnachricht in der Hauptdialogfeldklasse oder in Ihrer Anwendungsklasse abfangen. Beide Methoden werden hier beschrieben.

Ihre Anwendung muss zur Benachrichtigung einen benutzerdefinierten Windows-Klassennamen erstellen und registrieren. Siehe Klassennamen für Anwendungen zuordnen.

 ♦  So fügen Sie der Hauptdialogfeldklasse ActiveSync-Synchronisation hinzu
  1. Fügen Sie eine registrierte Nachricht hinzu und deklarieren Sie einen Message-Handler.

    Suchen Sie die Nachrichtenzuordnung in der Quelldatei Ihres Hauptdialogfeldes (der Name hat das gleiche Format wie CMyAppDlg.cpp). Fügen Sie eine registrierte Nachricht hinzu, indem Sie static verwenden, und deklarieren Sie einen Message-Handler, indem Sie ON_REGISTERED_MESSAGE verwenden, wie im folgenden Beispiel:

    static UINT WM_ULTRALITE_SYNC_MESSAGE =
     ::RegisterWindowMessage( UL_AS_SYNCHRONIZE );
    BEGIN_MESSAGE_MAP(CMyAppDlg, CDialog)
      //{{AFX_MSG_MAP(CMyAppDlg)
      //}}AFX_MSG_MAP
     ON_REGISTERED_MESSAGE( WM_ULTRALITE_SYNC_MESSAGE,
      OnDoUltraLiteSync )
    END_MESSAGE_MAP()
  2. Implementieren Sie den Message-Handler.

    Fügen Sie der Hauptdialogfeldklasse mit der folgenden Signatur eine Methode hinzu. Diese Methode wird automatisch immer dann ausgeführt, wenn der MobiLink-Provider für ActiveSync eine Synchronisation von Ihrer Anwendung anfordert. Die Methode muss ULSynchronize aufrufen.

    LRESULT CMyAppDlg::OnDoUltraLiteSync(
       WPARAM wParam,
       LPARAM lParam
    );

    Der Rückgabewert dieser Funktion muss 0 sein.

    Weitere Hinweise zum Verarbeiten der Synchronisationsnachricht finden Sie unter ULIsSynchronizeMessage-Methode.

 ♦  So fügen Sie der Anwendungsklasse ActiveSync-Synchronisation hinzu
  1. Öffnen Sie den Klassenassistenten für die Anwendungsklasse.

  2. Markieren Sie PreTranslateMessage in der Liste Nachrichten und klicken Sie auf die Schaltfläche Funktion hinzufügen.

  3. Klicken Sie auf Code bearbeiten. Die PreTranslateMessage-Funktion erscheint. Ändern Sie sie folgendermaßen:



    BOOL CMyApp::PreTranslateMessage(MSG* pMsg)
    {
     if( ULIsSynchronizeMessage(pMsg->message) ) {
      DoSync();
      // close application if launched by provider
      if( pMsg->wParam == 1 ) {
       ASSERT( AfxGetMainWnd() != NULL );
       AfxGetMainWnd()->SendMessage( WM_CLOSE );
      }
      return TRUE; // message has been processed
     }
     return CWinApp::PreTranslateMessage(pMsg);
    }

    Dabei ist DoSync die Funktion, die ULSynchronize aufruft.

    Weitere Hinweise zum Verarbeiten der Synchronisationsnachricht finden Sie unter ULIsSynchronizeMessage-Methode.