OLE Document Objects

OLE文檔對象來源自OLE2.0標準,並演化而來。OLE1.0時候,嵌入的文檔如果顯示,必須談出一個新視窗,然後內嵌文檔顯示在新視窗中。OLE2.0時候,嵌入的文檔可以顯示在Container中,但是內嵌文檔和Container的互動性很差。Container可以控制內嵌文檔,但內嵌文檔不能控制Container。OLE Document Objects解決了上述問題,是使用者感覺不到內嵌文檔的存在。How Everything Works

TCP三向交握/四次揮手詳解

1、建立連線協定(三向交握) (1)用戶端發送一個帶SYN標誌的TCP報文到伺服器。這是三向交握過程中的報文1。 (2) 伺服器端回應用戶端的,這是三向交握中的第2個報文,這個報文同時帶ACK標誌和SYN標誌。因此它表示對剛才用戶端SYN報文的回應;同時又標誌SYN給用戶端,詢問用戶端是否準備好進行資料通訊。 (3) 客戶必須再次回應服務段一個ACK報文,這是報文段3。 2、串連終止協議(四次揮手)

在ReactOS中增添ntoskrnl.exe的匯出函數

在\include\ndk\iofuncs.h中增加 ---------------------------------------------------------------- NTSYSCALLAPI NTSTATUS NTAPI NtMyTest( );在\include\ndk\ddk.h中增加 ----------------------------------------------------------------

Tomcat伺服器使用

1.建立管理帳號,預設帳號沒有manager角色 修改tomcat-users.xml <?xml version='1.0' encoding='utf-8'?> <tomcat-users>   <role rolename="manager"/>   <role rolename="tomcat"/>   <role rolename="role1"/>   <user

操作一個虛擬滑鼠

建立一個虛擬滑鼠,在AddDevice中status = IoCreateDevice (DriverObject,sizeof(DEVICE_EXTENSION),NULL,FILE_DEVICE_MOUSE,0,true,// Not exclusive&fdo);這樣建立的裝置,即便建立符號連結,也不可能在應用程式中開啟。這需要在DriverEntry中建立一個另外一個裝置,然後操作這個裝置。 UNICODE_STRING

虛指標的初始化

#include <iostream>using namespace std;class Base {public: Base() { cout << "In Base" << endl; cout << "Virtual Pointer = " << (int*)this << endl; cout << "Address of Vtable = "

The Apartment and the COM Threading Architecture

In general, the simplest way to view the COM threading architecture is to think of all the COM objects in the process as divided into groups called apartments. A COM object lives in exactly one apartment, in the sense that its methods can legally be

公開金鑰/私密金鑰

對稱演算法,在加密和解密的時候使用相同的密鑰,優點是速度快,缺點是管理起來很麻煩,而且容易泄露。非對稱金鑰也被稱為Session Key。非對稱演算法,在加密和解密的時候使用兩套密鑰,優點是可以公布公開金鑰給所有人,缺點是速度慢,計算速度是對稱演算法的1000倍。非對稱金鑰,被用於加密Session Key和數位簽章。數位簽章時,先對Message進行hash運算,然後用私密金鑰加密。別人用公開金鑰還原後,如果和hash值匹配,則說明是被簽名的檔案。

KeQueryTickCount宏的展開

#define KeQueryTickCount(CurrentCount ) { \ volatile PKSYSTEM_TIME _TickCount = *((PKSYSTEM_TIME *)(&KeTickCount)); \ while (TRUE) { \ (CurrentCount)->HighPart = _TickCount-

虛函數表中除了正常函數指標,還有其他的指標

#include <iostream>using namespace std;class Base {public: Base() { cout << "In Base" << endl; cout << "Virtual Pointer = " << (int*)this << endl; cout << "Address of Vtable = "

dll知識點查遺補缺 續

1.匯入函數 (1)如果程式靜態串連時,聲明函數採用了__declspec(dllimport) 調用Foo時,被翻譯成call [_imp_Foo] 其中_imp_Foo是idata節裡面的資料,dll的loader會修改這個地址裡的數值。 _imp_Foo是FirstTrunk值。 一般情況下,VC引入windows.h會採用這種方式。 (2)如果程式靜態串連時,沒有採用了__declspec(dllimport)

CryptoAPI的幾個用處

1. 加密和解密可以用對稱式加密,即用Session Key。先用一個字串做密碼,然後對他進行hash運算,通過hash結果得到Session Key。然後用Session Key進行加密、解密。Session Key可以匯入、到處。2. 簽名需要用到公開金鑰和私密金鑰。用私密金鑰簽名,用公開金鑰驗證。會用到Message協助簽名,其中Message操作有兩組函數,Low-Level Message Functions和Simplified Message Functions。The

ATL的建立者

 class ATL_NO_VTABLE CPolyCtl :public CComObjectRootEx<CComSingleThreadModel>,public CStockPropImpl<CPolyCtl, IPolyCtl, &IID_IPolyCtl, &LIBID_POLYGONLib>,public CComControl<CPolyCtl>,public

X.509 Digital Certification

建立數字認證的過程如下:1.Alice sends a signed certificate request containing her name, her public key, and perhaps some additional information to a CA. 2.The CA creates a message, m, from Alice's request. The CA signs the message with its private key, creating

stream VS Reader Writer

stream是針對byte[]操作,針對於二進位檔案操作。Reader和Writer針對char操作,針對於文字檔操作。預設是用原生編碼方式寫char ,如UTF-8和UTF-16和GB2312編碼 Reader和Writer是abstract類,不能直接用,一般用FileReader和FileWriter。 如果採用具體編碼,需要採用OutputStreamWriter。注意OutputStreamWriter的建構函式需要一個OutputStream的執行個體。

ATL中的ATL_NO_VTABLE宏

ATL_NO_VTABLE可以讓編譯器不產生VTable,並且不設定VPointer的值。 正常情況下,在調用建構函式和解構函式的時候,編譯器都會插入相應的代碼。如果ATL_NO_VTABLE,可以省去這些代碼。ATL中使用這個,是因為這個類為抽象類別,不需要VTable。真正的類是CComObject<XXX>,它繼承使用者的類。--------------------------------------------------------------#define ATL_

讀取磁碟和卷

#include <stdio.h>#include <windows.h>#include <winioctl.h>int main(void){//LPCTSTR lpszDevice = "\\\\.\\PhysicalDrive1";LPCTSTR lpszDevice = "\\\\.\\C:";HANDLE hDevice =

composition vs aggregation

Your new class can be made up of any number and type of other objects, in any combination that you need to achieve the functionality desired in your new class. Because you are composing a new class from existing classes, this concept is called

Types of APCs

Types of APCsAn asynchronous procedure call (APC) is a function that executes asynchronously. APCs are similar to deferred procedure calls (DPCs), but unlike DPCs, APCs execute within the context of a particular thread. Drivers (other than file

非同步IO、APC、IO完成連接埠、線程池與高效能伺服器之二 APC

非同步IO、APC、IO完成連接埠、線程池與高效能伺服器之二 APC     Alertable IO(警示IO)提供了更有效非同步通知形式。ReadFileEx / WriteFileEx在發出IO請求的同時,提供一個回呼函數(APC過程),當IO請求完成後,一旦線程進入可警示狀態,回呼函數將會執行。     以下五個函數能夠使線程進入警示狀態:     SleepEx     WaitForSingleObjectEx    

總頁數: 61357 1 .... 4374 4375 4376 4377 4378 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.