Discussion:
msoe.dll - IStoreNamespace - where are the newsgroups ?
(too old to reply)
R.Wieser
2020-07-31 08:52:18 UTC
Permalink
Hello all,

I just wrote a simple program using IStoreNamespace::GetFirstSubFolder
(inside MSOE.DLL) to iterate thru the folders Outlook Express has, and
noticed that only the "Local Folders" are returned - in other words, only
email, no newsgroups.

Question: how can I iterate thru and access the newsgroup folders ?

Regards,
Rudy Wieser
JJ
2020-07-31 14:40:25 UTC
Permalink
Post by R.Wieser
Hello all,
I just wrote a simple program using IStoreNamespace::GetFirstSubFolder
(inside MSOE.DLL) to iterate thru the folders Outlook Express has, and
noticed that only the "Local Folders" are returned - in other words, only
email, no newsgroups.
Question: how can I iterate thru and access the newsgroup folders ?
Regards,
Rudy Wieser
Unfortunately, Microsoft doesn't expose make them accessible from their COM
interfaces.

These lines are taken from `msoeapi.idl` of Windows SDK for Windows 7.

[quote]
// If in future the IStoreNamespace/IStoreFolder implementations are
extended
// to allow access to NNTP and IMAP folders, we will need new interface
// definitions to access the altered store.
[/quote]

FYI, that code comment only exist starting from WinSDK6. The one in
WinSDK2003 doesn't have it yet. It's still the same even in WinSDK10.

If you don't have WinSDK6+, you can check the file here:

https://pastebin.com/cFuyb2Ej

The above quoted lines start at line 143.
R.Wieser
2020-07-31 16:05:20 UTC
Permalink
JJ,
Post by JJ
Post by R.Wieser
Question: how can I iterate thru and access the newsgroup folders ?
...
Post by JJ
Unfortunately, Microsoft doesn't expose make them accessible from
their COM interfaces.
D*mn! There goes my "easy access and scripted updating" ideas towards
those newsgroups.
Post by JJ
These lines are taken from 'msoeapi.idl' of Windows SDK for Windows 7.
[snip]

Thanks for that info (and my apologies for not mentioning that it was OE6 on
XP :-( ).
Post by JJ
https://pastebin.com/cFuyb2Ej
Downloaded and saved it for future reference.

Regards,
Rudy Wieser
Auric__
2020-07-31 23:04:23 UTC
Permalink
Post by R.Wieser
Post by JJ
Post by R.Wieser
Question: how can I iterate thru and access the newsgroup folders ?
...
Post by JJ
Unfortunately, Microsoft doesn't expose make them accessible from
their COM interfaces.
D*mn! There goes my "easy access and scripted updating" ideas towards
those newsgroups.
Post by JJ
These lines are taken from 'msoeapi.idl' of Windows SDK for Windows 7.
[snip]
Thanks for that info (and my apologies for not mentioning that it was
OE6 on XP :-( ).
Post by JJ
https://pastebin.com/cFuyb2Ej
Downloaded and saved it for future reference.
You know, the nntp standard is pretty simple. It's all text commands. Connect
to the server using the standard nntp port (which I no longer remember --
port 23?), "AUTHINFO USER username", "AUTHINFO PASS password", "GROUP
groupname", "POST", etc. I think it took me about an hour or so to write the
whole thing. Check RFCs 3977 ("Network News Transfer Protocol (NNTP)")and
4642 ("Using Transport Layer Security (TLS) with Network News Transfer
Protocol (NNTP)"):

https://tools.ietf.org/html/rfc3977
https://tools.ietf.org/html/rfc4642
--
Sometimes the law is helpless to act, even when it identifies the guilty.
It follows, therefore, that sometimes it is necessary to act outside the law.
R.Wieser
2020-08-01 08:27:56 UTC
Permalink
Auric,
Post by Auric__
You know, the nntp standard is pretty simple.
I know, human readable even. I've already done stuff like that. :-)

Its just that I'm trying to use OE as a front end but adding some features
to it. Being able to iterate thru downloaded newsgroup messages is just
for starters, as an entry point.

Currently I've implemented some extra newsgroup filtering (crossposts marker
or supressor, better blacklist) by intercepting the DirectDB object and
"doing my thang" there. I'd rather have that moved to where it belongs
though (closer to the program itself). Hence my exploration of MSOE.

Regards,
Rudy Wieser
Auric__
2020-08-06 03:10:40 UTC
Permalink
Post by Auric__
You know, the nntp standard is pretty simple.
[snip]
Post by Auric__
I think it took me about an
hour or so to write the whole thing.
I just realized this could be read to imply that I wrote the nntp standards.
In reality, I had mentioned a program I had written for Usenet posting, which
was "the whole thing" I mentioned above, then deleted it from my reply as
irrelevant. Oops.
--
Hey, I don't make the crazy rules,
I just twist them to suit my purpose.
R.Wieser
2020-08-02 11:30:25 UTC
Permalink
JJ,
Post by JJ
Unfortunately, Microsoft doesn't expose make them accessible
from their COM interfaces.
I just found that when I supply the value 9 as the FolderID (directly after
the highest "Local Folders" ID) to the GetFirstSubFolder method it happily
iterates thru all my subscribed newsgroups for my (first) newsgroup server.
Iterating thru the messages seems to go fine too.

Looking at the GetFirstSubFolder methods code itself I see that FolderID 0
is always replaced by 1* - hence it never starting at the folder root, but
always at "Local Folders"

*which assumes that the "Local folders" record will always be stored at
index 1 ...

Regards,
Rudy Wieser
JJ
2020-08-02 13:16:08 UTC
Permalink
Post by R.Wieser
JJ,
Post by JJ
Unfortunately, Microsoft doesn't expose make them accessible
from their COM interfaces.
I just found that when I supply the value 9 as the FolderID (directly after
the highest "Local Folders" ID) to the GetFirstSubFolder method it happily
iterates thru all my subscribed newsgroups for my (first) newsgroup server.
Iterating thru the messages seems to go fine too.
Looking at the GetFirstSubFolder methods code itself I see that FolderID 0
is always replaced by 1* - hence it never starting at the folder root, but
always at "Local Folders"
*which assumes that the "Local folders" record will always be stored at
index 1 ...
Regards,
Rudy Wieser
Congrats for learning the necessity of thinking beyond the given rules.
R.Wieser
2020-08-02 14:12:20 UTC
Permalink
JJ,
Post by JJ
Congrats for learning the necessity of thinking beyond the given rules.
Especially on my own 'puter I regard such 'rules' as being advisory. :-)

Regards,
Rudy Wieser
Loading...