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

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

 

ActiveSync-Synchronisation hinzufügen (MFC)

 Hinzufügen der ActiveSync-Synchronisation in der Hauptdialogfeldklasse

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

Ihre Anwendung muss zur Benachrichtigung einen benutzerdefinierten Windows-Klassennamen erstellen und registrieren.

  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.

 Hinzufügen der ActiveSync-Synchronisation in der Anwendungsklasse

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

Ihre Anwendung muss zur Benachrichtigung einen benutzerdefinierten Windows-Klassennamen erstellen und registrieren.

  1. Öffnen Sie den Klassenassistenten für die Anwendungsklasse.

  2. Markieren Sie in der Liste Nachrichten den Eintrag PreTranslateMessage und klicken Sie anschließend auf 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.

 Siehe auch