2010/1/21 Jacek Caban :
> Hi Rob,
>
> On 1/21/10 12:57 PM, Rob Shearman wrote:
>>
>> ---
>> tools/wmc/wmc.c | 8 +---
>> tools/wmc/wmc.h | 2 +-
>> 2 files changed, 6 insertions(+), 4 deletions(-)
>>
>
> --- a/tools/wmc/wmc.h
> +
eturn ERROR_SUCCESS;
> }
This is not correct as per the discussion on wine-devel, so it needs
to be reverted. It causes these new Valgrind warnings:
http://kegel.com/wine/valgrind/logs/2010-01-11-14.17/diff-advapi32_security.txt
--
Rob Shearman
Object==0) )
>
> should at least use NULL instead of 0 as both are pointers, but !ptr is
> even better here. Accordingly
iface shouldn't generally be checked for NULL unless a program depends
on it and a testcase shows this behaviour in native.
--
Rob Shearman
2009/12/30 Jacek Caban :
> Hi Rob,
>
> Thanks for your work on jscript. Unfortunately fixing Valgrind on jscript is
> not going to be easy. Most of your fixes are good, except clear_global part
> and "jscript: Fix a circular reference caused by object and function objects
ffering of samples is also not implemented yet, applications usually install
> an ISampleGrabberCB callback.
Thread-safety is non-existent in your newly written code. DirectShow
uses multiple threads so I would say thread-safety is a requirement,
not a nice-to-have.
--
Rob Shearman
2009/12/14 Nikolay Sivov :
> On 12/14/2009 18:51, Alexandre Julliard wrote:
>>
>> Module: wine
>> Branch: master
>> Commit: c20868e0a2f7af909cf8af2877ae8b024fa6d11e
>> URL:
>> http://source.winehq.org/git/wine.git/?a=commit;h=c20868e0a2f7af909cf8af2877ae
those tests originally, so I'll fix it :)
Those failures only occur because of modifications I made to them, but
thanks for fixing it anyway!
--
Rob Shearman
n should be changed to allow the required
access rights to be specified.
--
Rob Shearman
WRITE,
> &hServiceKey);
> +err = RegOpenKeyExW(db->root_key, szName, 0, KEY_READ, &hServiceKey);
> if (err == ERROR_SUCCESS)
> {
> err = load_service_config(hServiceKey, entry);
This change is fine since hServiceKey is only every used with
this by setting an appropriate security
descriptor on the registry key before calling the function you are
changing.
However, the change to get_special_root_hkey looks fine to me. The
rest of your patch isn't easy to review because you haven't generated
the diff with the "-p" option.
--
Rob Shearman
2009/11/24 Rob Shearman :
> This is caused by caching a pointer and reference to the data cache's
> IPersistStorage interface without managing reference counts
> appropriately.
> ---
> dlls/ole32/defaulthandler.c | 22 ++
> 1 files changed, 22 ins
2009/11/23 Louis Lenders :
> This fixes http://bugs.winehq.org/show_bug.cgi?id=20050
>
> The dll is present on my XP system
This DLL is already partially implemented in a DLL called mapi32, so
there should be no need to add this completely stubbed out.
--
Rob Shearman
=0)
> return MK_E_NOPREFIX;
>
>
> commonPath=HeapAlloc(GetProcessHeap(),0,sizeof(WCHAR)*(min(lstrlenW(pathThis),lstrlenW(pathOther))+1));
> + if (!commonPath)
> + return E_OUTOFMEMORY;
Ditto plus stringTable2.
>
> *commonPath=0;
--
Rob Shearman
_admins_sid is less clear - one could argue that all Wine
users on a given system would present themselves as admins to apps,
but then again the apps may be restricting permissions on a file
because it contains sensitive data and should only be shared with
other admins (which would be trusted as such, unlike other users on a
system).
--
Rob Shearman
/user32/nonclient.c | 6 ++
> 1 files changed, 6 insertions(+), 0 deletions(-)
You could easily add a testcase for this behaviour.
--
Rob Shearman
2009/11/11 Dan Kegel :
> On Mon, Nov 9, 2009 at 2:12 PM, Rob Shearman wrote:
>> 2009/11/9 Dan Kegel :
>>> 16 bytes in 1 blocks are definitely lost in loss record 123 of 728
>>> at RtlAllocateHeap (heap.c:1423)
>>> by RtlAllocateAndInitializeSid (sec.c:1
2009/11/12 Paul Vriens :
> Hi Rob,
>
> There is still a crash in the rpcrt4 tests on NT4+.
>
> These 2 tests both crash actually:
>
> 886 x = echo_ranged_int(0);
> 887 ok(x == 0, "echo_ranged_int() returned %d instead of 0\n", x);
> 888 x = echo_
27;s the use of volatile? When is it appropriate in Wine?
I haven't looked in detail at the context of your patch, but this
looks appropriate to it:
http://lkml.indiana.edu/hypermail/linux/kernel/0607.0/1566.html
Particularly the part about volatile storage vs. access.
--
Rob Shearman
by start_thread (thread.c:469)
> by start_thread (pthread_create.c:297)
> by clone (clone.S:130)
>
> I don't think that happened before today.
>
> Rob/Hans, could you have a look?
Probably caused by:
http://source.winehq.org/git/wine.git/?a=commitdiff;h=59ba6d2573532c15e2487bbc86f6bb93022c1d38
I'll take a look.
--
Rob Shearman
f the reported leak.)
Hi Dan,
The bug is in the Wine code. Try the attached patch, which should fix
it as a side-effect.
Thanks,
--
Rob Shearman
From 766547300875c677ea9cfa6b3a10a3fb717c68ee Mon Sep 17 00:00:00 2001
From: Robert Shearman
Date: Mon, 27 Apr 2009 18:53:15 +0100
Subject: [PATCH]
workOptions)))
> - {
> + compare_networkoptions(NetworkOptions, assoc->NetworkOptions)
> + ) {
Looks good functionally, but please don't change the style.
> assoc->refs++;
> *assoc_out = assoc;
> LeaveCriticalSection(&assoc_list_cs);
Thanks,
--
Rob Shearman
orkAddr) &&
> !strcmp(Endpoint, assoc->Endpoint) &&
> - ((!assoc->NetworkOptions && !NetworkOptions) ||
> !strcmpW(NetworkOptions, assoc->NetworkOptions)))
> + (!assoc->NetworkOptions || !NetworkOptions ||
> !strcmpW(NetworkOptions, assoc->NetworkOptions)))
Thanks,
--
Rob Shearman
a handle without large modifications).
However, having 3rd party code linked into the wineserver probably
gives many people the heebie-jeebies, given how critical the
wineserver is to allowing wine processes to continue to run and the
special rules of coding in the wineserver - not blocking, for one.
--
Rob Shearman
{
> WARN("bad user name %s for trustee %d\n",
> debugstr_w(pEntries[i].Trustee.ptstrName), i);
> ret = ERROR_INVALID_PARAMETER;
--
Rob Shearman
> $1, $3); }
> + | expr_int_const '%' expr_int_const { $$ = make_expr2(EXPR_MOD,
> $1, $3); }
> + | expr_int_const '*' expr_int_const { $$ = make_expr2(EXPR_MUL,
> $1, $3); }
> + | expr_int_const '/' expr_int_const { $$ = make_expr2(EXPR_DIV,
> $1, $3); }
> + | expr_int_const '|' expr_int_const { $$ = make_expr2(EXPR_OR ,
> $1, $3); }
> + | expr_int_const '^' expr_int_const { $$ = make_expr2(EXPR_XOR,
> $1, $3); }
> + | expr_int_const '&' expr_int_const { $$ = make_expr2(EXPR_AND,
> $1, $3); }
Using "expr_int_const" instead of "expr" here prevents a many forms of
expressions from being parsed.
> + | tSIZEOF '(' type ')' { $$ =
> make_exprt(EXPR_SIZEOF, $3, NULL); }
> + | '(' expr ')' { $$ = $2; }
> ;
>
> expr_const: expr { $$ = $1;
It looks like you'll have to find another way of fixing the issue you
are trying to fix.
--
Rob Shearman
bably
some MSDN documentation on the limitations of size_is expressions in
IDL.
--
Rob Shearman
ad of ULONG_PTR? It shouldn't change the memory layout
of the oletls structure and it will eliminate the need of these types
of casts.
--
Rob Shearman
ths. It also appears that the function leaks memory in the
realloc small -> large path.
--
Rob Shearman
ss %d!\n", tokeninfoclass);
The server already tracks the default DACL of the token in the token
object, so implementing these functions properly shouldn't be much
more work than writing the code to marshall and unmarshall the ACL to
and from the server, with two new trivial functions in the server for
getting and setting the default_dacl field.
--
Rob Shearman
le_test should be removed and replaced
with another that uses widl-generated code for testing context handles
rather than low-level functions.
--
Rob Shearman
hard for someone to whip together an
> alternate report that did that. Wish I had the time to...
--
Rob Shearman
o
HKCU\Software\Classes? How do you amalgamate change notification from
both HKCU\Software\Classes and HKLM\Software\Classes?
--
Rob Shearman
t;
> From the name, and the DLL it resides in, something to do with Image Lists?
No:
http://msdn.microsoft.com/en-us/library/bb773321(VS.85).aspx
--
Rob Shearman
milar to what I submitted. Have I got the wrong PSDK?
>
> /* IPv6 definitions */
>
> #ifndef s6_addr
>
> struct in6_addr {
> union {
> u_char Byte[16];
> u_short Word[8];
> } u;
> };
>
> #define in_addr6 in6_addr
>
> /*
> ** Defines to match RFC 2553.
> */
> #define _S6_un u
> #define _S6_u8 Byte
> #define s6_addr _S6_un._S6_u8
>
> /*
> ** Defines for our implementation.
> */
> #define s6_bytes u.Byte
> #define s6_words u.Word
>
> #endif
This looks right, but in recent PSDKs it has moved from ws2tcpip.h to in6addr.h.
--
Rob Shearman
2009/3/30 Alexandre Julliard :
> Rob Shearman writes:
>
>> socketpair is only needed for the server functions for ncacn_ip_tcp.
>> The tower implementation that ncacn_http and ncacn_ip_tcp share
>> doesn't depend on it.
>
> It doesn't need socketpair, bu
loop and run wrc again on the file above?
Also, what compiler did you use to compile wrc and libwine?
--
Rob Shearman
2009/3/18 Igor Tarasov :
> 2009/3/18 Rob Shearman :
>> 2009/3/18 Igor Tarasov :
>>>> Please ensure that there are no regressions in the display of IE6's
>>>> toolbars after this patch. This is the main user of undocumented
>>>> toolbar feature
er.php?sClass=version&iId=469
However, I don't know if IE6 currently installs or works in Wine.
--
Rob Shearman
LBAR_DrawFlatSeparator (&rc, hdc, infoPtr);
You should fix the name of the TOOLBAR_DrawDDFlatSeparator function
and the comments above it if you think it should be called as a result
of the CCS_VERT window style and not the BTNS_DROPDOWN button style.
--
Rob Shearman
x = lptbbi->cx;
> +btnPtr->cx = lptbbi->cx;
> if (lptbbi->dwMask & TBIF_STATE)
> btnPtr->fsState = lptbbi->fsState;
> if (lptbbi->dwMask & TBIF_STYLE)
Whitespace only changes shouldn't be included in patches with other changes.
--
Rob Shearman
upAccountSidW does something not compatible with
> Windows. Im thinking about writing a test code, but simply checking
> if the above code returns the same as GetUserNameW seems not
> correct, if test code should run under a different account as the actual
> login user.
>
> Is this a requirement for running the wine tests?
--
Rob Shearman
2009/3/9 Austin English :
> Howdy Rob,
>
> Looks like one of your recent qmgr patches added failure to qmgr:
> http://test.winehq.org/data/1b9a6fb4e9f5a76f1ca352bef121689df02d9289/#group_Wine
>
> file.c:121: Test failed: GetRemoteName failed: 800706c6
> file.c:124: Tests s
tion for this then I might be able to use a
> native DLL to get round it, but I've no idea where it might reside! AFAIK
> GetPrivateProfileString() doesn't do this expansion inherently.
>
> Also if it is the case that the behaviour's different, then I would say it's
> a Wine bug.
>
> Any ideas appreciated.
--
Rob Shearman
2009/3/5 Alexandre Julliard :
> Rob Shearman writes:
>
>> ---
>> tools/widl/expr.c | 18
>> tools/widl/header.c | 34 ++--
>> tools/widl/parser.y | 103
>> ++---
x27;s just text.
In order for patches to be easily viewed in most email clients and
hence reviewed, they should be sent with a content type of text/*
(e.g. text/plain), regardless of whether the content is text and
compressed text.
--
Rob Shearman
s been tested on Win9x? Since HeapSize on those versions of
Windows doesn't return the same size as allocated, IMalloc_GetSize
might not either.
> +IMalloc_Free(malloc, ptr);
> +}
> +IMalloc_Release(malloc);
> +OleUninitialize();
> +}
--
Rob Shearman
ered classes to find the cookie so this doesn't need to be
changed.
--
Rob Shearman
nce setup_config_dir is called very
early in the ntdll execution sequence, and RtlAllocateHeap itself will
depend on server calls (NtAllocateVirtualMemory, NtCreateMutex, etc.)
that depend on the server having started (i.e. after this function
having already executed).
--
Rob Shearman
2009/2/13 GerbilSoft :
> --- keyboard.c.orig 2009-02-12 11:50:28.110457529 -0500
> +++ keyboard.c2009-02-12 11:52:06.061206978 -0500
You need to generate the patch from the top of the wine directory. You
also need to use your real name for copyright-tracking purposes.
--
Rob Shearman
LOCALE_INVARIANT when it's implemented.
And, yes, there's probably lots of other places where we do case
insensitive comparisons incorrectly like this, but we should stop
introducing new ones.
--
Rob Shearman
;
> +}
>
> ret = pCredEnumerateA(NULL, 0, &count, &creds);
> ok(ret, "CredEnumerateA failed with error %d\n", GetLastError());
>
> I'm wondering whether a better patch would be to change the persist
> type from CRED_PERSIST_ENTERPRISE to CRED_PERS
about the crash are not helpful in
> pinpointing the failing test.
>
> How can we get more information about these timeouts/crashes?
Something like the attached patch?
It needs changes in winetest along with the web dissector to integrate
properly, which I haven't got around to doin
uot; and 10" ones as far as I know, with the exception of the HP one which
>> has a highjer resolution). The old 7" models might have had an 800x600
>> resolution but I think these can be ignored now (no 7" netbook is
>> shipping anymore).
>>
> I think it&
test report.
Of course, we should find some way of preventing such reports being
filed and one of the ways could be to add a check to the winetest
program.
--
Rob Shearman
2009/2/9 Alexandre Julliard :
> Rob Shearman writes:
>
>> @@ -874,8 +874,8 @@ unsigned char * WINAPI LPSAFEARRAY_UserMarshal(ULONG
>> *pFlags, unsigned char *Buf
>>
>> *(ULONG *)Buffer = ulCellCount;
>> Buffer += sizeof(ULONG);
>> -
t;type)))
> + print_proxy(" _RetVal = NULL;\n");
> +else
> + print_proxy(" _RetVal = 0;\n");
> }
> print_proxy( "RPC_MESSAGE _RpcMessage;\n" );
> if (has_ret) {
I think this is just hiding the problem. Can you give an example of
IDL which causes widl to generate code that causes compiler warnings?
--
Rob Shearman
2009/2/6 Nikolay Sivov :
> Rob Shearman wrote:
>> 2009/2/5 Nikolay Sivov :
>>
>>> Changelog:
>>>- Check for null endpoint in RpcServerUseProtseqEpExW.
>>> Installed IE8 RC1 crashes on this call, parameter set is spec
ServerUseProtseqEpExW isn't quite correct.
> START_TEST( rpc )
> {
> static unsigned char ncacn_np[] = "ncacn_np";
> @@ -849,4 +863,5 @@ START_TEST( rpc )
> test_endpoint_mapper(ncalrpc, NULL, lrpc_endpoint);
> test_RpcStringBindingFromBinding();
> test_UuidCreate();
> +test_RpcServerUseProtseqEpEx();
> }
--
Rob Shearman
t;{\n");
> print_proxy( "return (__frame->_StubMsg.dwStubPhase !=
> PROXY_SENDRECEIVE);\n");
> print_proxy( "}\n");
> + print_proxy("#endif /* USE_COMPILER_EXCEPTIONS */\n");
> print_proxy( "\n");
> }
I think a better solution to this would be to use proxy_filter as the
expression in the RpcExcept statements.
Alexandre, what do you think?
--
Rob Shearman
does it route the DdeConnect routine in user32.dll to the DdeConnect
> routine in the shell32.dll. The DDE interface in shell32 and user32 will
> need to call the same set of routines from either method for full
> functionality of DDE calls, including those to Progman.
http://en.wikipedia.org/wiki/Library_(computing)#Dynamic_linking
--
Rob Shearman
2009/2/5 Jeremiah Flerchinger :
> On Thu, 2009-02-05 at 18:12 +0000, Rob Shearman wrote:
>> 2009/2/3 Dmitry Timoshkov :
>> > "Jeremiah Flerchinger" wrote:
>> >
>> >> Stubs basic DDE interface of Progman.exe. Similar to Progman stub in
>>
2009/2/5 Luke Kenneth Casson Leighton :
> http://bugs.winehq.org/show_bug.cgi?id=17263
The patch looks acceptable in theory. Please email the patch to
wine-patches (or wine-devel) and I'll review the implementation of it.
--
Rob Shearman
n DDE interface should be implemented by shell32.dll, nowhere else.
And it already is: ShellDDEInit.
All it needs is some always running process to call it. It looks like
explorer would be a good choice.
--
Rob Shearman
1, url+strlenW(url),
> -1);
> +MultiByteToWideChar(CP_ACP, 0, GECKO_VERSION, -1, url+strlenW(url),
> (size-strlenW(url))/sizeof(WCHAR));
Dividing a string length (which returns character count) by
sizeof(WCHAR) doesn't look right.
--
Rob Shearman
ut a particular bug in which some
> version of an installer (InstallShield?) refused to work correctly
> because the wine version of one API call was checking a pointer
> parameter against NULL and returning an error code instead of crashing.
> If I recall correctly, it turned out that the installer *expected* the
> crash, and depended on the fault handler executing some code for its
> correct operation. So the NULL check was removed, the API now crashes
> with the invalid pointer (exactly like native) and that installer now
> works correctly. Maybe somebody who was involved in the actual fix can
> dig up a pointer to the relevant thread.
http://www.winehq.org/pipermail/wine-devel/2006-July/049830.html
http://bugs.winehq.org/show_bug.cgi?id=5384
--
Rob Shearman
2:marshal.html
While I can see how using HKEY_CURRENT_USER instead of
HKEY_CLASSES_ROOT can help developers using a standard user rather
than Admin on Windows, I don't see it as useful in general as a lot of
the tests emulate what installers do and hence depend on having full
access to the system.
--
Rob Shearman
ng to be changed at compile time (or runtime through
a registry tweak) and have the code do the appropriate thing - in that
case it would have been better to put the variable at the top of the
file.
--
Rob Shearman
ERROR_NOACCESS, "got %d (expected ERROR_NOACCESS)\n", ret);
From the source of RegSetValueExA, this appears to return
ERROR_INVALID_PARAMETER on Win9x, so this test case needs to be run on
Win9x and fixed if necessary to take this into account.
--
Rob Shearman
n the impl struct, so you should add a big comment to the
impl struct warning that bad things will happen if the
IDirect3DDevice7 vtable field isn't the first one.
--
Rob Shearman
this function has the prefix Ndr it should go in an ndr_*.c file
in rpcrt4, not one of the others (I would suggest ndr_marshall.c next
to the user marshal functions, which initialise the data structure
that it operates on). It also lacking a winapi comment.
--
Rob Shearman
const type_t *type)
> default:
> assert(0);
> }
> +return 0;
> }
>
> #define STATEMENTS_FOR_EACH_FUNC(stmt, stmts) \
Please put the return statement in the default case.
--
Rob Shearman
og:
>> NdrVaryingArrayUnmarshall() is broken on Windows
>
> If it's broken on Windows then there's no point in testing it, you can
> simply remove it.
There's value in the function working in Wine and testing the function
stops it being inadvertently broken (probably by m
2009/1/12 Alexandre Julliard :
> "Rob Shearman" writes:
>
>> Skip calling the Pointer marshalling/unmarshalling/buffer
>> sizing/freeing function in this case.
>>
>> Output code for calling union marshalling/unmarshalling/buffer
>> sizing/freeing f
;
>
> How could I get over that?
The IDL syntax that widl implements includes a subset of the C syntax,
however it is not practical to support the full C syntax (in
particular inline functions) and in this case widl doesn't like the
array initialiser. MIDL probably also suffers from similar limitations
and you'll see "#ifndef MIDL_PASS" in PSDK header files to work around
these sorts of issues. If you really have to treat commctrl.h as an
IDL file, you'll need to #ifdef out problem statements.
--
Rob Shearman
gt; return 0;
>
> attrs = type->attrs;
> - type = type_pointer_get_ref(type);
> + type = get_deref_type(type);
> }
> else
> attrs = NULL;
It would be simpler if you just did:
if (is_ptr(type))
fc = type->type;
else
{
}
return fc == RPC_FC_RP;
Note: there appears to be a bug in the current code where it walks
pointers looking for the pointer attribute, instead of walking just
aliases, so that should probably be fixed too.
--
Rob Shearman
ptr and is_string_type into
typegen.c/typegen.h, since that is where they are most used.
--
Rob Shearman
(ref));
> }
>
> static inline int last_array(const type_t *type)
Looks good.
--
Rob Shearman
> applied to non-pointer type in expression%s%s\n",
>expr_loc->attr ? " for attribute " : "",
Looks good, once you expand the dubious functions used here. Also, can
you add a test for this in dlls/rpcrt4/tests/server.c?
--
Rob Shearman
given that it only replaces two or three
lines of code and is only used in three places.
--
Rob Shearman
rs;
> type = type_pointer_get_ref(type);
> }
Looks good. Eventually, I want to move this into
typegen.c:get_pointer_fc and in the future determine the pointer type
based on its attributes and whether it is a parameter or not.
Please send to wine-patches.
--
Rob Shearman
ase use is_void to make it clear what is being checked here.
--
Rob Shearman
2009/1/10 Michael Karcher :
> Output NULL pointers into proxy table and STUB_FORWARDING_FUNCTION into
> stub tables if a local function has no call_as function associated, just
> as MIDL does.
Looks fine to me.
--
Rob Shearman
2009/1/7 Ge van Geldorp :
> Hi Rob,
>
> Is WIDL supposed to generate code that's compatible with Windows RPCRT4.DLL?
> Because it appears this is currently not the case. When you look at
> http://test.winehq.org you'll see that the rpcrt4:server test fails on
> pre
- Add a new type of pin, PullPin.
--
Rob Shearman
rther as to why it isn't working
for you. I suggest to start by running "winedump dump -j import
shell32_crosstest.exe".
--
Rob Shearman
ds to be freed (on the
client side).
The correct fix for the problem you see is to implement (yet another)
check in cant_be_null.
--
Rob Shearman
object, rather than trying to guess from the attributes. I plan to
clean this up in the near future so you don't need to change the patch
unless you want to.
--
Rob Shearman
ge the
"long" type in widl to output "int". This will allow the generated
code to work correctly on both 32-bit and 64-bit Linux and Windows
platforms (but not 16-bit platforms and possibly other platforms).
--
Rob Shearman
al(def->attrs)) print_proxy( "0 /* %s_%s_Proxy */",
> iface->name, get_name(def));
>else print_proxy( "%s_%s_Proxy", iface->name, get_name(def));
>i++;
> }
This will now cause methods with the [local] attribute and with a
matching [call_as] method to no longer be included in the function
table, which isn't what you want.
--
Rob Shearman
t; + if (sysctl(mib, 2, value, (size_t *)(value+1), NULL, 0) >= 0) {
> +#else
> + if (sysctl(mib, 2, value, value+1, NULL, 0) >= 0) {
> +#endif
...
--
Rob Shearman
2009/1/1 Michael Karcher :
> Am Donnerstag, den 01.01.2009, 20:43 + schrieb Rob Shearman:
>> No, the [string] attribute in this case in redundant and it should
>> apply to the first pointer in the parameter.
> Now, that makes sense.
>
>> I'm guessing by the
>
e to see a Python output generator for widl so
that it can directly generate Python code that will communicate to a
remote process using DCE/RPC, but that comes second place to getting
the C generator as close to perfect as possible at the moment.
--
Rob Shearman
small performance
penalty for this and the other similar changes too.
These kinds of optimisations need to be backed up by benchmarks, for
both memory and performance.
--
Rob Shearman
UserMarshal
> @ stub HBRUSH_UserSize
The functions should be added in the correct place so that the list of
functions remains sorted.
--
Rob Shearman
2009/1/1 Michael Karcher :
> Am Donnerstag, den 01.01.2009, 19:09 + schrieb Rob Shearman:
>> 2009/1/1 Michael Karcher :
>> > +[call_as(AddPropertySheetPages)]
>> > +HRESULT RemoteAddPropertySheetPages();
> [...]
>> > +[call_as(SendControlMsg)]
2009/1/1 Michael Karcher :
> Am Donnerstag, den 01.01.2009, 18:53 + schrieb Rob Shearman:
>> but MIDL ignores the pointer type for interface
>> pointers and never outputs a NULL reference pointer check for them. So
>> widl just needs to be fixed.
> Is it OK for me to lo
2009/1/1 Michael Karcher :
> Am Donnerstag, den 01.01.2009, 18:58 + schrieb Rob Shearman:
>> 2009/1/1 Michael Karcher :
>> > + hr = IPropertyBag_RemoteRead_Proxy(This, pszPropName, &outVariant,
>> > pErrorLog,
>> > +
t] DWORD *pdwFlags,
> -[out, string] LPWSTR *ppwszString);
> +[out] LPWSTR *ppwszString);
> +
> +[call_as(GetDropDownStatus)]
> + HRESULT RemoteGetDropDownStatus();
This isn't correct. IAutoCompleteDropDown::GetDropDownStatus should be
remoted as is.
>
> HRESULT ResetEnumerator();
> }
--
Rob Shearman
You're leaking the memory in outVariant here, since VariantCopy does a
deep copy of all of the data. Is there a reason you don't just pass
pVar into IPropertyBag_RemoteRead_Proxy?
--
Rob Shearman
] IPropertyBag *pPropBag,
> -[in] IErrorLog *pErrorLog);
> +[in,unique] IErrorLog *pErrorLog);
>
> HRESULT Save(
> [in] IPropertyBag *pPropBag,
Same goes for this change.
--
Rob Shearman
1 - 100 of 353 matches
Mail list logo