By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
464,299 Members | 1,200 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 464,299 IT Pros & Developers. It's quick & easy.

How to: Retrieving BuiltinDocumentProperties from Word Document

P: n/a
Word has a property BuiltinDocumentProperties, which (in VBA) returns a
DocumentProperties collection. In VB.NET, using Word automation, it returns
a _ComObject. I have tried to cast this to DocumentProperties, but I get an
invalid cast exception.

In Explorer, I can right click a Word document, click Properties, and I get
a tabbed dialog with Custom and Summary tabs. These tabs show me the built
in document properties of the document.

I notice that Explorer does this without starting a copy of Word, and it
does it reasonably quickly. The only coded example I have found uses late
binding to retrieve a property by name, but it assumes that I know the name
of the properties in advance.

How can I get at these properties in the same way that Explorer does it,
without starting Word? Also, Explorer can get the properties of a PDF,
without starting Acrobat, so there must be a generic way.

Failing that, how can I use Word automation and early binding to get them?

Any thoughts?

TIA

Charles
Jan 28 '06 #1
Share this Question
Share on Google+
3 Replies

P: n/a
On Sat, 28 Jan 2006 09:23:49 -0000, "Charles Law" <bl***@nowhere.com> wrote:

Word has a property BuiltinDocumentProperties, which (in VBA) returns a
DocumentProperties collection. In VB.NET, using Word automation, it returns
a _ComObject. I have tried to cast this to DocumentProperties, but I get an
invalid cast exception.

In Explorer, I can right click a Word document, click Properties, and I get
a tabbed dialog with Custom and Summary tabs. These tabs show me the built
in document properties of the document.

I notice that Explorer does this without starting a copy of Word, and it
does it reasonably quickly. The only coded example I have found uses late
binding to retrieve a property by name, but it assumes that I know the name
of the properties in advance.

How can I get at these properties in the same way that Explorer does it,
without starting Word? Also, Explorer can get the properties of a PDF,
without starting Acrobat, so there must be a generic way.

Failing that, how can I use Word automation and early binding to get them?

See if the following helps:

How To Use Automation to Get and to Set Office Document Properties with Visual Basic .NET
http://support.microsoft.com/default...b;en-us;303294
Paul
~~~~
Microsoft MVP (Visual Basic)
Jan 30 '06 #2

P: n/a
Hi Paul

Thanks for the reply. It's actually this article that I am using as my
starting point.

In the article, Word is launched and a /known/ parameter - Author - is read.
Everything is done using late binding, and I would like to use early binding
because I always have Option Strict On.

Also, it presupposes that I know which properties I want to read, when, in
fact, I just want to get a list of the existing ones (and any custom
properties) to display to the user.

Thirdly, it is very slow, having to launch Word just to read these
properties. It would be nice to know how Explorer can do it so much more
quickly.

Charles
"Paul Clement" <Us***********************@swspectrum.com> wrote in message
news:1h********************************@4ax.com...
On Sat, 28 Jan 2006 09:23:49 -0000, "Charles Law" <bl***@nowhere.com>
wrote:

Word has a property BuiltinDocumentProperties, which (in VBA) returns a
DocumentProperties collection. In VB.NET, using Word automation, it
returns
a _ComObject. I have tried to cast this to DocumentProperties, but I get
an
invalid cast exception.

In Explorer, I can right click a Word document, click Properties, and I
get
a tabbed dialog with Custom and Summary tabs. These tabs show me the
built
in document properties of the document.

I notice that Explorer does this without starting a copy of Word, and it
does it reasonably quickly. The only coded example I have found uses
late
binding to retrieve a property by name, but it assumes that I know the
name
of the properties in advance.

How can I get at these properties in the same way that Explorer does it,
without starting Word? Also, Explorer can get the properties of a PDF,
without starting Acrobat, so there must be a generic way.

Failing that, how can I use Word automation and early binding to get
them?

See if the following helps:

How To Use Automation to Get and to Set Office Document Properties with
Visual Basic .NET
http://support.microsoft.com/default...b;en-us;303294
Paul
~~~~
Microsoft MVP (Visual Basic)

Jan 30 '06 #3

P: n/a
For anyone wondering how this is done, the answer is IPropertyStorage.

The following link leads to an article and ActiveX control that does the
job:

http://support.microsoft.com/?id=224351

Charles
"Charles Law" <bl***@nowhere.com> wrote in message
news:%2*****************@TK2MSFTNGP15.phx.gbl...
Word has a property BuiltinDocumentProperties, which (in VBA) returns a
DocumentProperties collection. In VB.NET, using Word automation, it
returns a _ComObject. I have tried to cast this to DocumentProperties, but
I get an invalid cast exception.

In Explorer, I can right click a Word document, click Properties, and I
get a tabbed dialog with Custom and Summary tabs. These tabs show me the
built in document properties of the document.

I notice that Explorer does this without starting a copy of Word, and it
does it reasonably quickly. The only coded example I have found uses late
binding to retrieve a property by name, but it assumes that I know the
name of the properties in advance.

How can I get at these properties in the same way that Explorer does it,
without starting Word? Also, Explorer can get the properties of a PDF,
without starting Acrobat, so there must be a generic way.

Failing that, how can I use Word automation and early binding to get them?

Any thoughts?

TIA

Charles

Jan 30 '06 #4

This discussion thread is closed

Replies have been disabled for this discussion.