دستورات CreatObject و ... به چه معنا و چه فرقی با هم دارند؟

اینجانب تا بحال چندین ActivX شخصاً ساخته ام، ولی طبق نظر کتابهای مذکور از آنها با دستور
Dim NameVar as New NameClass
استفاده نموده ام، ولی بعضی از اکتیو ایکس ها را می توان با دستور CreatObject لود نمود. سئوال بنده این می باشد،‌که فرق دو دستور فوق چیست. و ایا دستور CreatObject معادل معرفی نمودن ActivX در Refrnce خود وی بی می باشد، و یا چیز دیگری می باشد.

موضوع دیگری که نیز وجود دارد این می باشد،(و مساله را قدری پیچیده تر کرده است) که ما شی را که در Refrence خود وی بی معرفی کرده ایم، حال برای استفاده از ان باید دوباره دستور زیر را بکار بریم،

فرضاً Dim Cnn as New ADOBE.CONNECTION
(شی اتصال ADO)

مورد بالا برای چه بکار دوباره رفته است، و چرا تعریف رفرنس را نمی توانیم استفاده کنیم.

حال به مثال زیر توجه کنید :

(Set FS = CreateObject("Scripting.FileSystemObject"
ما در بالا یکباره اکتیوایکس را باز و دیگر نیاز به دستور نیو نمی باشد. علت تفاوت در چیست؟

لطفاً هر چه در مورد موارد بالا یا هرچه که خود مناسب می دانید، توضیح داده و اینجانب را از سرگردانی نجات دهید.
متشکرم