freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

activesync編程總結(編輯修改稿)

2024-10-22 17:19 本頁面
 

【文章內容簡介】 t[ 80 ]。// 類型欄顯示的文本charszPlTypeText[ 80 ]。 // Plural form of text displayed in the Type } OBJUIDATA, *POBJUIDATA。結構定義如下:參考流程圖1以獲得初始化過程的演示當設備斷開時,ActiveSync provider不會自動卸載,一般是ActiveSync manager最后調用一下IReplStore::Release函數,如果provider的引用計數達到了0,這個接口就會被刪除。ActiveSync manager通常在它試圖調用IReplStore::Release之前,用RSC_RELEASE參數調用IReplStore::ReportStatus,一個ActiveSync provider能夠確認在RSC_RELEASE接受之后,所有的外部接口都已經被釋放。這將確定當ActiveSync manager釋放這個存儲時引用計數已經達到了0。所有桌面端對象的枚舉一個ActiveSync provider必須能夠列舉給定文件夾中的所有對象。IReplStore:: FindFirstItem通常在列舉開始的時候被調用,ActiveSync provider能夠初始化列舉所需的任何事情。在例子代碼中,它在內存映射文件中為所有存在對象搞了一個快照,并調用了IReplStore::FindNextItem。當所有對象的HREPLITEM返回時,代碼設置了*pfExist為false,這結束了枚舉,然后IReplStore::FindItemClose會被調用(釋放資源)如果ActiveSync provider是一個過濾器同步對象,它能夠選擇返回一個在列舉中(FindFirst或next函數)通過了過濾器的對象。一旦一個對象在同步時被過濾器過濾出局,在桌面端看上去象是一個被刪除的對象,因為桌面端的枚舉不再返回這個對象。ActiveSync manager認定它已經被桌面端刪除,并發(fā)布一條命令讓設備端也去刪除相應的對象。對于需要和多臺設備相連的設備而言,這不是期待的行為,如果每臺pc上的過濾器都不相同,PC端的對象有可能被刪除,因為設備端對象被另一個桌面PC的過濾器過濾出局時已經被刪掉了。為了防止這一點,ActiveSync provider通常在列舉過程中,返回每個對象,并在IReplStore:: IsItemReplicated來實現過濾器如果列舉需要花費一段時間才能完成,ActiveSync provider能夠調用IReplNotify:: SetStatusText來顯示文本,讓用戶來了解列舉的進度。如果ActiveSync provider想用高效的方法來探測是否文件夾中的對象有改動或者被刪除了,他應該實現IReplStore::IsFolderChanged。當沒有對象被改變和刪除時設置*pfChanged為false,ActiveSync manager在列舉對象時會忽略該文件夾。如果ActiveSync provider有實時探測改變和刪除的能力,它將除連接設備后第一次調用IReplStore::IsFolderChanged外,每次都設置pfChanged為false。當IReplStore::IsFolderChanged在連接上設備之后,第一次被調用時,最重要的事情是讓ActiveSync manager知道自從最后一次更新之后,有可能一個或多個對象已經被改變或刪除了。比較典型的是:一個ActiveSync provider在IReplStore:: GetFolderInfo中為每個文件夾設置了一個標記?,并且,在IReplStore::IsFolderChanged中,如果這個標記已經被設置,那么就設置*pfChanged為false對象列舉過程的演示流程圖在同步之間探測改變或刪除ActiveSync 。內部,在列舉開始之前,ActiveSync manager在它的句柄表中對每個handle都作了一個位標記,每次ActiveSync providers通過IReplStore::FIndFirstItem或者IReplStore::FindNextItem返回一個新句柄的時候,ActiveSync manager嘗試在自己內部的句柄表中通過一個二進制搜索找出代表同一個對象的一個句柄(代表這個對象的句柄在這個表中唯一嗎?從后面來看,唯一)。如果沒有找到匹配的句柄,一個新對象就會在桌面端的store里面被創(chuàng)建,ActiveSync manager清除了表中這個句柄的這一“位”,并調用IReplStore::IsItemChanged來判斷這個對象自從最后一次同步以來是否發(fā)生了變化,如果是,ActiveSync manager調用IReplStore::CopyObject從列舉返回的句柄復制數據到它保存的那些句柄。然后ActiveSync manager調用IReplStore::IsItemReplicated來判斷是否將它發(fā)送到設備端,在列舉結束后,所有ActiveSync manager內部表中的那些標記為代表那些沒有被列舉返回的對象的句柄,將會在桌面端的Store中被刪除。IReplNotify這是一個由ActiveSync manager實現的接口,任何ActiveSync provider能夠使用這個接口中定義的方法。這些方法是:OnItemNotify通知ActiveSync manager發(fā)生在一個對象上的任何改變或刪除,也可以通知ActiveSync manager關閉ActiveSync provider。這使得manager能夠實時地為provider自動更新同步狀態(tài)(This enables the manager to update the synchronization status for the service provider automatically in real time)如果service provider沒有能力實時探測對象變化或刪除,它可以忽略這個方法SetStatusText在ActiveSync 狀態(tài)窗口的狀態(tài)欄、移動設備窗口以及其他任何同步狀態(tài)可以被現實的地方中設置顯示文本。GetWindow返回任何模式對話框或消息對話框的父窗口的句柄QueryDevice返回連接的或被選中的設備的信息改變或刪除的實時報告如果一個ActiveSync provider具備這樣一種能力:能夠在桌面端store發(fā)生改變和刪除的時候立刻就能探測到,那么它可以調用IReplNotify::OnItemNotify,以便讓ActiveSync manager立刻知道,如果對象只是簡單地被創(chuàng)建或者修改,ActiveSync provider傳遞RNC_MODIFIED或者RNC_CREATED,如果對象被刪除則傳遞RNC_DELETED,它也傳遞給這個對象,這允許ActiveSync manager在自己的表中搜索,并找出這個句柄對應了哪個設備對象。(aspsample例子中沒有用到這個函數)略…發(fā)送和接收對象同步可以由用戶來初始化或者在數據過時(作為上述IReplNotify::OnItemNotify調用的實現)的時候自動進行IReplObjHandler是一個COM接口用于把一個對象轉換為一個字節(jié)流。這屬于序列化。轉換一個字節(jié)流為一個對象,稱為反序列化。ActiveSync管理器也使用這個接口從store中刪除一個對象。IReplObjHandler接口在桌面和設備端都被實現,因此很多代碼可以共享。這個接口的一個實例為每個對象類型創(chuàng)建一個。(我們不需要考慮這么多,因為我們只同步一種類型,就是CReplItem,存放需要同步文件的全路徑和最后修改時間)并沒有限制或規(guī)范來指導一個對象如何被序列化的。ActiveSync manager從不知道字節(jié)的格式。一個ActiveSync provider能夠序列化對象成為許多字節(jié)并能夠把這些字節(jié)組織成一些包。ActiveSync manager保證這些將被發(fā)送到設備的包,以一種明確的和它們發(fā)送到ActiveSync manager相同的數量和順序被發(fā)送出去。.下面的方法經常被順序調用,作用到一個對象被序列化為一串字節(jié)的時候。REPLSETUP結構被傳入IReplObjHandler::Setup函數,這個結構被定義如下在這個結構中ActiveSync provider需要下面的成員fRead被設置為TRUE用于從一個桌面的store來讀取一個對象,FALSE用于寫入一個對象到桌面store中dwFlags是一個bit標記的集合,用于描述對象序列化和反序列化hFolder是一個文件夾對象的句柄hItem是對象的句柄,需要被序列化的對象。ActiveSync將會使用包含在這個句柄中的信息來標記對象并把它轉換為字節(jié)包所有其他成員對ActiveSync manager來說都是內部的,都不會被改變。從一個設備接受一個對象的過程和發(fā)送一個對象很類似。在數據包從設備到達之后,IReplObjHandler接口方法將會被調用來讓ActiveSync provider轉換這些包恢復成一個對象。ActiveSync provider必須打包數據包并且創(chuàng)建一個對象。一個代表對象的新的HREPLITEM必須在REPLSETUP::hItem中被創(chuàng)建和設置,費解...The ActiveSync provider must take the data packets and create an new HREPLITEM representing the object must be created and set in REPLSETUP::hItem。RERR_DISCARD:ActiveSync provider希望在變化被同步后立刻去刪除設備對象,ActiveSync manager將會發(fā)送一條命令給設備對象去刪除對應的對象ActiveSync編程總結(三)關鍵詞: ActiveSync編程總結( service provider From: 沖突處理如果一個對象同時在設備和桌面端被改換,在它被同步之前。這兒產生了沖突。ActiveSync manager首先發(fā)布一個命令給設備來獲得對象到桌面???設備上的IReplObjHandler中的方法被調用,ActiveSync provider從設備store中讀取數據,數據被送到桌面端,桌面端的IReplObjHandler被調用來創(chuàng)建一個臨時對象。在設備和桌面端都被調用中,RSF_CONFLICT_OBJECT被設置為REPLSETUP::dwFlags,數據被寫完之后,ActiveSync manager調用ActiveSync provider填充CONFINFO結構來個性化文本描述....設備ActiveSync provider設備ActiveSync provider被實現為一個dll。Stockpor例子設備ActiveSync ,這個dll導出了四個函數...文件系統(tǒng)對象 vs 同步對象在windowsCE中,文件系統(tǒng)能夠擁有對象,例如文件,目錄和記錄,數據庫等。文件系統(tǒng)中的每個對象被賦予了一個32bit的唯一的ID。舉一個簡單例子,一個ActiveSync provider可以把這個作為一個同步對象的ID。例如:如果windowsCE數據庫中的記錄必須被同步, provider可以使用文件系統(tǒng)ID作為object ID并且返回給ActiveSync manager。在更復雜的例子中,一個文件包含多個對象的,ActiveSync provider也許需要返回超過一個objectID當文件變化的時候,這時就不能再使用winCE對象ID了,只能產生你自己的ID系統(tǒng)。初始化和終止InitObjType對于設備ActiveSync provider來說初始化和結束時都會被調用。如果ActiveSync provider支持多個對象類型的同步,InitObjType將會為每個對象類型調用一次,通過給定的不為NULL的lpszObjType。當ActiveSync終止,給定的lpszObjType為null,然后ActiveSync provider將會釋放它分配的任何資源。ActiveSync通過使用一個partner位支持兩個桌面計算機和一個基于winCE的設備進行同步(同時嗎?),為什么不支持4個?奇怪。ActiveSync manager初始化ActiveSync provider時(設備端),或者設置為2,如果是第二個伙伴。如果一個ActiveSync provider使用同步對象的臟位來檢查是否被修改或其他,它在設置或重置這個臟位時必須考慮這個伙伴位,為什么啊?對象的列舉設備端對象的列舉和桌面很不同。當設備被連接上時,ActiveSync manager枚舉每個文件系統(tǒng)對象(除了ROM中的files或者\windows目錄下的)并為每個ActiveSync provider調用ObjectNotify函數。ActiveSync provider決定是否它將同步給定的文件系統(tǒng)對象,并且,如果這樣的話,它會通知ActiveSync manager有多少同步對象包含在文件系統(tǒng)中。這時通常的方式,如果一個文件代表多個對象的話這個將變得很大一個新函數可以被加入:FindObjects...ObjectNotify和探測變化與刪除ObjectNotify會被頻繁調用,最好要以最高的效率來實現。它會快速檢查OBJNOTIFY結構中的信息來發(fā)現和這個調用是否和ActiveSync provider感興趣的一種對象類型相關?典型的,一個ActiveSync provider簡單地檢查OBJNOTIFY結構中的給定的文件系統(tǒng)ID和標記位OBJNOTIFY會像下面那樣定義typedef struct tagObjNotify
點擊復制文檔內容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1