類廠簡介
就像其它工廠,如生產汽車的工廠,可以生產汽車。類廠是另外一種類型的工廠,在這種“工廠”中我們可以製造出所需的組件,這種工廠被稱作是類廠。類廠實際上也是一個組件。
創建組件最簡單的辦法是使用CoCreateInstance,使用的也最多。但有時不夠靈活。
CoCreateInstance實際上並沒有直接創建COM組件,而是創建了一個類廠組件。類廠組件的唯一功能就是創建其它的組件。
類廠特性
◆類廠的一個實例只能創建同某個CLSID回響的組件。
◆與某個特定CLSID相應的類廠是由實現組件的開發人員實現的。大多數情況下,類廠組件包含在它所創建的組件相同的DLL中。
如何通過類廠創建組件
1. 創建類廠本身
使用COM庫函式CoGetClassObject。它返回指向所需組件的類廠而不是指向組件本身的一個指針。
2. 通過上一步返回的指針(通常是IClassFactory指針)創建所需的組件。