Add iads.idl to define the IADsContainer interface.

Add adshlp.h to declare the ADs* functions.
Fix the ADsOpenObject() prototype.
Update win32.api to match.
This commit is contained in:
Francois Gouget 2005-09-26 16:43:20 +00:00 committed by Alexandre Julliard
parent d7d8bbfc04
commit 2f9678727f
7 changed files with 117 additions and 16 deletions

View File

@ -4,7 +4,7 @@
6 stdcall ADsEnumerateNext(ptr long ptr ptr)
7 stub ADsBuildVarArrayStr
8 stub ADsBuildVarArrayInt
9 stdcall ADsOpenObject(wstr ptr ptr)
9 stdcall ADsOpenObject(wstr wstr wstr long ptr ptr)
12 stub ADsSetLastError
13 stub ADsGetLastError
14 stub AllocADsMem

View File

@ -33,6 +33,10 @@
#include "winver.h"
#include "winnls.h"
#include "objbase.h"
#include "iads.h"
#include "adshlp.h"
#include "wine/unicode.h"
#include "wine/debug.h"
@ -41,7 +45,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(activeds);
/*****************************************************
* DllMain
*/
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
TRACE("(%p, %ld, %p)\n",hinstDLL, fdwReason, lpvReserved);
@ -52,8 +55,7 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
/*****************************************************
* ADsGetObject [ACTIVEDS.3]
*/
HRESULT WINAPI ADsGetObject(LPWSTR lpszPathName, REFIID riid, VOID** ppObject)
HRESULT WINAPI ADsGetObject(LPCWSTR lpszPathName, REFIID riid, VOID** ppObject)
{
FIXME("(%s)->(%s,%p)!stub\n",debugstr_w(lpszPathName), debugstr_guid(riid), ppObject);
return E_NOTIMPL;
@ -62,9 +64,7 @@ HRESULT WINAPI ADsGetObject(LPWSTR lpszPathName, REFIID riid, VOID** ppObject)
/*****************************************************
* ADsBuildEnumerator [ACTIVEDS.4]
*/
/* HRESULT WINAPI ADsBuildEnumerator(IADsContainer * pADsContainer, IEnumVariant ** ppEnumVariant) */
HRESULT WINAPI ADsBuildEnumerator(LPVOID * pADsContainer, LPVOID ** ppEnumVariant)
HRESULT WINAPI ADsBuildEnumerator(IADsContainer * pADsContainer, IEnumVARIANT** ppEnumVariant)
{
FIXME("(%p)->(%p)!stub\n",pADsContainer, ppEnumVariant);
return E_NOTIMPL;
@ -73,9 +73,7 @@ HRESULT WINAPI ADsBuildEnumerator(LPVOID * pADsContainer, LPVOID ** ppEnumVarian
/*****************************************************
* ADsEnumerateNext [ACTIVEDS.6]
*/
/* HRESULT WINAPI ADsEnumerateNext(IEnumVariant * pEnumVariant, ULONG cElements, VARIANT * pvar, ULONG * pcElementsFetched) */
HRESULT WINAPI ADsEnumerateNext(LPVOID * pEnumVariant, ULONG cElements, LPVOID * pvar, ULONG * pcElementsFetched)
HRESULT WINAPI ADsEnumerateNext(IEnumVARIANT* pEnumVariant, ULONG cElements, VARIANT* pvar, ULONG * pcElementsFetched)
{
FIXME("(%p)->(%lu, %p, %p)!stub\n",pEnumVariant, cElements, pvar, pcElementsFetched);
return E_NOTIMPL;
@ -84,10 +82,10 @@ HRESULT WINAPI ADsEnumerateNext(LPVOID * pEnumVariant, ULONG cElements, LPVOID *
/*****************************************************
* ADsOpenObject [ACTIVEDS.9]
*/
HRESULT WINAPI ADsOpenObject(LPWSTR lpszPathName, REFIID riid, VOID** ppObject)
HRESULT WINAPI ADsOpenObject(LPCWSTR lpszPathName, LPCWSTR lpszUserName, LPCWSTR lpszPassword, DWORD dwReserved, REFIID riid, VOID** ppObject)
{
FIXME("(%s)->(%s,%p)!stub\n",debugstr_w(lpszPathName), debugstr_guid(riid), ppObject);
FIXME("(%s,%s,%lu,%p,%p)!stub\n", debugstr_w(lpszPathName),
debugstr_w(lpszUserName), dwReserved, debugstr_guid(riid), ppObject);
return E_NOTIMPL;
}

View File

@ -12,6 +12,7 @@ docobj.h
downloadmgr.h
exdisp.h
hlink.h
iads.h
mediaobj.h
mimeinfo.h
mlang.h

View File

@ -17,6 +17,7 @@ WINDOWS_IDL_SRCS = \
downloadmgr.idl \
exdisp.idl \
hlink.idl \
iads.idl \
mediaobj.idl \
mimeinfo.idl \
mlang.idl \

36
include/adshlp.h Normal file
View File

@ -0,0 +1,36 @@
/*
* Copyright (C) 2005 Francois Gouget
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef __WINE_ADSHLP_H
#define __WINE_ADSHLP_H
#ifdef __cplusplus
extern "C" {
#endif
HRESULT WINAPI ADsBuildEnumerator(IADsContainer*,IEnumVARIANT**);
HRESULT WINAPI ADsEnumerateNext(IEnumVARIANT*,ULONG,VARIANT*,ULONG*);
HRESULT WINAPI ADsGetObject(LPCWSTR,REFIID,VOID**);
HRESULT WINAPI ADsOpenObject(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,REFIID,VOID**);
BOOL WINAPI FreeADsMem(LPVOID);
#ifdef __cplusplus
}
#endif
#endif

62
include/iads.idl Normal file
View File

@ -0,0 +1,62 @@
/*
* Copyright 2005 Francois Gouget
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
import "oaidl.idl";
/*****************************************************************************
* IADsContainer interface
*/
[
object,
uuid(001677d0-fd16-11ce-abc4-02608c9e7553)
]
interface IADsContainer: IDispatch
{
[propget] HRESULT Count(
[out, retval] long *retval);
[propget, restricted] HRESULT _NewEnum(
[out, retval] IUnknown **retval);
[propget] HRESULT Filter(
[out, retval] VARIANT *pvFilter);
[propput] HRESULT Filter(
[in] VARIANT vFilter);
[propget] HRESULT Hints(
[out, retval] VARIANT *pvHints);
[propput] HRESULT Hints(
[in] VARIANT vHints);
HRESULT GetObject(
[in] BSTR bstrClassName,
[in] BSTR bstrRelativeName,
[out, retval] IDispatch **ppObject);
HRESULT Create(
[in] BSTR bstrClassName,
[in] BSTR bstrRelativeName,
[out, retval] IDispatch **ppObject);
HRESULT Delete(
[in] BSTR bstrClassName,
[in] BSTR bstrRelativeName);
HRESULT CopyHere(
[in] BSTR bstrSourceName,
[in] BSTR bstrNewName,
[out, retval] IDispatch **ppObject);
HRESULT MoveHere(
[in] BSTR bstrSourceName,
[in] BSTR bstrNewName,
[out, retval] IDispatch **ppObject);
}

View File

@ -3,21 +3,24 @@
%long
BOOL
DWORD
HRESULT
ULONG
%ptr
IADsContainer *
IEnumVARIANT *
IEnumVARIANT **
LPVOID
LPVOID *
LPVOID **
REFIID
ULONG *
VARIANT *
VOID **
%wstr
LPWSTR
LPCWSTR
%%advapi32.dll