Signed-off-by: Dmitry Timoshkov dmitry@baikal.ru --- include/iads.idl | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+)
diff --git a/include/iads.idl b/include/iads.idl index e7ad5fb549..4a54a2c933 100644 --- a/include/iads.idl +++ b/include/iads.idl @@ -777,3 +777,53 @@ interface IDirectorySearch : IUnknown HRESULT FreeColumn([in] PADS_SEARCH_COLUMN pSearchColumn); HRESULT CloseSearchHandle([in] ADS_SEARCH_HANDLE hSearchResult); } + +/***************************************************************************** + * IADsADSystemInfo interface + */ +[ + odl, + uuid(5bb11929-afd1-11d2-9cb9-0000f87a369e), + dual, + oleautomation +] +interface IADsADSystemInfo : IDispatch +{ + [id(0x00000002), propget] + HRESULT UserName([out, retval] BSTR *retval); + [id(0x00000003), propget] + HRESULT ComputerName([out, retval] BSTR *retval); + [id(0x00000004), propget] + HRESULT SiteName([out, retval] BSTR *retval); + [id(0x00000005), propget] + HRESULT DomainShortName([out, retval] BSTR *retval); + [id(0x00000006), propget] + HRESULT DomainDNSName([out, retval] BSTR *retval); + [id(0x00000007), propget] + HRESULT ForestDNSName([out, retval] BSTR *retval); + [id(0x00000008), propget] + HRESULT PDCRoleOwner([out, retval] BSTR *retval); + [id(0x00000009), propget] + HRESULT SchemaRoleOwner([out, retval] BSTR *retval); + [id(0x0000000a), propget] + HRESULT IsNativeMode([out, retval] VARIANT_BOOL *retval); + [id(0x0000000b)] + HRESULT GetAnyDCName([out, retval] BSTR *retval); + [id(0x0000000c)] + HRESULT GetDCSiteName([in] BSTR server, [out, retval] BSTR *retval); + [id(0x0000000d)] + HRESULT RefreshSchemaCache(); + [id(0x0000000e)] + HRESULT GetTrees([out, retval] VARIANT *retval); +} + +[ + helpstring("AD SystemInfo Object"), + uuid(50b6327f-afd1-11d2-9cb9-0000f87a369e), + threading(both) +] +coclass ADSystemInfo +{ + [default] interface IADsADSystemInfo; + interface IDispatch; +}
Dmitry Timoshkov dmitry@baikal.ru writes:
+interface IADsADSystemInfo : IDispatch +{
- [id(0x00000002), propget]
- HRESULT UserName([out, retval] BSTR *retval);
- [id(0x00000003), propget]
- HRESULT ComputerName([out, retval] BSTR *retval);
- [id(0x00000004), propget]
- HRESULT SiteName([out, retval] BSTR *retval);
- [id(0x00000005), propget]
- HRESULT DomainShortName([out, retval] BSTR *retval);
- [id(0x00000006), propget]
- HRESULT DomainDNSName([out, retval] BSTR *retval);
- [id(0x00000007), propget]
- HRESULT ForestDNSName([out, retval] BSTR *retval);
- [id(0x00000008), propget]
- HRESULT PDCRoleOwner([out, retval] BSTR *retval);
- [id(0x00000009), propget]
- HRESULT SchemaRoleOwner([out, retval] BSTR *retval);
- [id(0x0000000a), propget]
- HRESULT IsNativeMode([out, retval] VARIANT_BOOL *retval);
- [id(0x0000000b)]
- HRESULT GetAnyDCName([out, retval] BSTR *retval);
- [id(0x0000000c)]
- HRESULT GetDCSiteName([in] BSTR server, [out, retval] BSTR *retval);
- [id(0x0000000d)]
- HRESULT RefreshSchemaCache();
- [id(0x0000000e)]
- HRESULT GetTrees([out, retval] VARIANT *retval);
+}
+[
- helpstring("AD SystemInfo Object"),
- uuid(50b6327f-afd1-11d2-9cb9-0000f87a369e),
- threading(both)
+] +coclass ADSystemInfo +{
- [default] interface IADsADSystemInfo;
- interface IDispatch;
+}
Aren't these supposed to be defined inside the activeds typelib instead?
Alexandre Julliard julliard@winehq.org wrote:
+interface IADsADSystemInfo : IDispatch +{
...
+}
+[
- helpstring("AD SystemInfo Object"),
- uuid(50b6327f-afd1-11d2-9cb9-0000f87a369e),
- threading(both)
+] +coclass ADSystemInfo +{
- [default] interface IADsADSystemInfo;
- interface IDispatch;
+}
Aren't these supposed to be defined inside the activeds typelib instead?
PSDK defines IADsADSystemInfo and ADSystemInfo in iads.h which is a generated header (supposedly from iads.idl, where I put these definitions as well). On the other hand activeds.tlb contains much more interfaces and definitions than iads.h does, so I'd guess that activeds.tlb is generated from an .idl that includes most of active directory related .idl files.
Dmitry Timoshkov dmitry@baikal.ru wrote:
Alexandre Julliard julliard@winehq.org wrote:
+interface IADsADSystemInfo : IDispatch +{
...
+}
+[
- helpstring("AD SystemInfo Object"),
- uuid(50b6327f-afd1-11d2-9cb9-0000f87a369e),
- threading(both)
+] +coclass ADSystemInfo +{
- [default] interface IADsADSystemInfo;
- interface IDispatch;
+}
Aren't these supposed to be defined inside the activeds typelib instead?
PSDK defines IADsADSystemInfo and ADSystemInfo in iads.h which is a generated header (supposedly from iads.idl, where I put these definitions as well). On the other hand activeds.tlb contains much more interfaces and definitions than iads.h does, so I'd guess that activeds.tlb is generated from an .idl that includes most of active directory related .idl files.
Is there anything else that prevents accepting these two patches? Or perhaps add some underscores to typedefs to make the patches more appealing? It looks like they are no longer frowned upon these days? :)
Dmitry Timoshkov dmitry@baikal.ru writes:
Dmitry Timoshkov dmitry@baikal.ru wrote:
Alexandre Julliard julliard@winehq.org wrote:
+interface IADsADSystemInfo : IDispatch +{
...
+}
+[
- helpstring("AD SystemInfo Object"),
- uuid(50b6327f-afd1-11d2-9cb9-0000f87a369e),
- threading(both)
+] +coclass ADSystemInfo +{
- [default] interface IADsADSystemInfo;
- interface IDispatch;
+}
Aren't these supposed to be defined inside the activeds typelib instead?
PSDK defines IADsADSystemInfo and ADSystemInfo in iads.h which is a generated header (supposedly from iads.idl, where I put these definitions as well). On the other hand activeds.tlb contains much more interfaces and definitions than iads.h does, so I'd guess that activeds.tlb is generated from an .idl that includes most of active directory related .idl files.
Is there anything else that prevents accepting these two patches? Or perhaps add some underscores to typedefs to make the patches more appealing? It looks like they are no longer frowned upon these days? :)
I still think they should be in the typelib. If you look at the interface registrations with your second patch they don't match the Windows ones.
Alexandre Julliard julliard@winehq.org wrote:
Aren't these supposed to be defined inside the activeds typelib instead?
PSDK defines IADsADSystemInfo and ADSystemInfo in iads.h which is a generated header (supposedly from iads.idl, where I put these definitions as well). On the other hand activeds.tlb contains much more interfaces and definitions than iads.h does, so I'd guess that activeds.tlb is generated from an .idl that includes most of active directory related .idl files.
Is there anything else that prevents accepting these two patches? Or perhaps add some underscores to typedefs to make the patches more appealing? It looks like they are no longer frowned upon these days? :)
I still think they should be in the typelib. If you look at the interface registrations with your second patch they don't match the Windows ones.
Thanks for the review, still it would be more helpful to get this kind of information a bit faster, without taking a week, and another query.
Which interface registration do you have in mind? As far as I can see ADSystemInfo registration matches what I see in Windows, do I miss something else?
Dmitry Timoshkov dmitry@baikal.ru writes:
Which interface registration do you have in mind? As far as I can see ADSystemInfo registration matches what I see in Windows, do I miss something else?
With your patch it's registered as:
[HKEY_CLASSES_ROOT\CLSID{50B6327F-AFD1-11D2-9CB9-0000F87A369E}] @="AD SystemInfo Object"
[HKEY_CLASSES_ROOT\CLSID{50B6327F-AFD1-11D2-9CB9-0000F87A369E}\InprocServer32] @="C:\windows\system32\adsldp.dll" "ThreadingModel"="Both"
On Windows it's like this:
[HKEY_CLASSES_ROOT\CLSID{50B6327F-AFD1-11d2-9CB9-0000F87A369E}] @="AD System Info Object"
[HKEY_CLASSES_ROOT\CLSID{50B6327F-AFD1-11d2-9CB9-0000F87A369E}\InprocServer32] @=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\ 00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,61,00,64,00,\ 73,00,6c,00,64,00,70,00,2e,00,64,00,6c,00,6c,00,00,00 "ThreadingModel"="Both"
[HKEY_CLASSES_ROOT\CLSID{50B6327F-AFD1-11d2-9CB9-0000F87A369E}\ProgID] @="ADSystemInfo"
[HKEY_CLASSES_ROOT\CLSID{50B6327F-AFD1-11d2-9CB9-0000F87A369E}\TypeLib] @="{97d25db0-0363-11cf-abc4-02608c9e7553}"
[HKEY_CLASSES_ROOT\CLSID{50B6327F-AFD1-11d2-9CB9-0000F87A369E}\Version] @="1.0"
Alexandre Julliard julliard@winehq.org wrote:
Which interface registration do you have in mind? As far as I can see ADSystemInfo registration matches what I see in Windows, do I miss something else?
With your patch it's registered as:
[HKEY_CLASSES_ROOT\CLSID{50B6327F-AFD1-11D2-9CB9-0000F87A369E}] @="AD SystemInfo Object"
[HKEY_CLASSES_ROOT\CLSID{50B6327F-AFD1-11D2-9CB9-0000F87A369E}\InprocServer32] @="C:\windows\system32\adsldp.dll" "ThreadingModel"="Both"
On Windows it's like this:
[HKEY_CLASSES_ROOT\CLSID{50B6327F-AFD1-11d2-9CB9-0000F87A369E}] @="AD System Info Object"
[HKEY_CLASSES_ROOT\CLSID{50B6327F-AFD1-11d2-9CB9-0000F87A369E}\InprocServer32] @=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\ 00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,61,00,64,00,\ 73,00,6c,00,64,00,70,00,2e,00,64,00,6c,00,6c,00,00,00 "ThreadingModel"="Both"
So far it's identical (except SystemInfo vs. System Info).
[HKEY_CLASSES_ROOT\CLSID{50B6327F-AFD1-11d2-9CB9-0000F87A369E}\ProgID] @="ADSystemInfo"
[HKEY_CLASSES_ROOT\CLSID{50B6327F-AFD1-11d2-9CB9-0000F87A369E}\TypeLib] @="{97d25db0-0363-11cf-abc4-02608c9e7553}"
[HKEY_CLASSES_ROOT\CLSID{50B6327F-AFD1-11d2-9CB9-0000F87A369E}\Version] @="1.0"
I believe that typelib registration should be added along with introducing dlls/activeds.tlb which should be a separate effort.
Dmitry Timoshkov dmitry@baikal.ru writes:
I believe that typelib registration should be added along with introducing dlls/activeds.tlb which should be a separate effort.
Sure, but it wouldn't hurt to write the header correctly, because the way you are doing it is going to break when we add the typelib. Never mind, I'll fix it myself.