James Hawkins <truiken@gmail.com>
- Use Interlocked* instead of ++/-- in AddRef/Release.
- Use only stored result of Interlocked* in AddRef/Release.
- Expand TRACEs to display the ref count.
Alex Villacis Lasso <a_villacis@palosanto.com>
- Initialize temporary variants before calling VariantChangeTypeEx.
- When parsing an hex/oct integer value, copy value verbatim in VARIANT,
rather than a negated value. Add test case for this behavior.
Vincent Beron <vberon@mecano.gme.usherb.ca>
- Remove message telling users to copy native stdole32.tlb over as we
now provide it.
- Better trace in LoadTypeLib.
- Change debug messages type to reflect we provide stdole32.tlb.
Robert Shearman <rob@codeweavers.com>
- Move OLE automation interface registration to oleaut32.
- Add IRemUnknown to list of interfaces to register.
Mike Hearn <mh@codeweavers.com>
- Change some FIXMEs to ERRs to reflect the fact that nothing needs
fixing.
- Fix some memory leaks on error paths in _marshal_interface.
- Fix a typo, propagate errors better from inside the typelib
marshaller.
- Return OLE automation build value as win2k by default.
Rein Klazes <wijn@wanadoo.nl>
- SafeArrayDestroy() returns success when called with a NULL
pointer. Added to the test cases.
Paul Vriens <Paul.Vriens@xs4all.nl>
- Add WinXP to OaBuildVersion.
svn path=/trunk/; revision=13533
Robert Shearman <rob@codeweavers.com>
- Add documentation for most Co* functions.
- Move several functions into different files to group them with
similar functions.
- Implement CoDisconnectObject.
- Change CoLockObjectExternal so that it does the correct action now
and eliminate a fair few lines of now redundant code.
- Rename OLE32_Dll{Register,Unregister}Server to
Dll{Register,Unregister}Server.
- Move OLE automation interface registration to oleaut32.
- Add IRemUnknown to list of interfaces to register.
- Make proxy manager use IMultiQI instead of IInternalUnknown as tests
show that IInternalUnknown isn't exposed.
- Implement IMultiQI on top of IRemUnknown calls.
- Silence some fixmes that occur during tests and don't give us any
useful information.
- Fix typo in class factory proxy that caused us to use the wrong
offset into the CFProxy structure, causing us to not call the
outer_unknown properly.
- Use InterlockedIncrement for the ipid counter instead of a critical
section (suggested by Mike Hearn).
- Remove a line added by a bad merge.
- Implement RemUnkStub_Disconnect.
- Remove all of the RPC disconnect code.
- Implement IRemUnknown.
- Use IRemUnknown for life-cycle management instead of the current
hacks.
- Generate machine-local IPIDs.
- Make pipes be uniquely identified only by their IPID.
- Implement table marshaling.
- The apartment reference should be held while the stub manager
reference is held.
- Fix same apartment-unmarshal detection.
- Proxies/stubs for IRemUnknown methods, based on code written by Ove
Ksven.
- Initialize ppv pointer in ClientIdentity_QueryInterface to NULL as
apps depend on this.
- Don't release IRpcProxyBuffer on ifproxy destruction - the caller
will do this for us.
- Make find_proxy_manager add a reference to the proxy manager and
make proxy_manager_construct return an object with a valid
ref-count.
- Remove stray not operator to fix a memory leak / crash in
proxy_manager_destroy.
- More debug messages, especially on errors.
- Fix ref-count leak in the Class Factory proxy.
- Add a test case for IClassFactory_CreateInstance.
- Split up apartment creation so that the long code paths that don't
need locking no longer have locking.
- Add special cases for the threads that join apartments but can't
increase the refcount of the apartment.
- Free TLS storage on thread destruction (including releasing the
apartment the thread is in, if any, and so making another test
pass).
- More tests.
- Change return code of CoGetPSClsid to match test result.
- Do a slight hack to make IRemUnknown proxies be added after the
proxy that uses them to stop them being used after they are
destroyed.
- Fix multiple local server connections.
- The apartment reference should be held while the stub manager
reference is held.
- Fix same apartment-unmarshal detection.
- Don't use the pipe caching code because it doesn't work correctly at
the moment.
- Always write disconnect reply packet, even in failure cases.
- Move object-to-stub-manager mapping rule to register_ifstub.
- Pass the original IID to IMarshal_UnmarshalInterface and query for
the requested interface.
- Unmarshaling IID_NULL means use the IID the interface was originally
marshaled with.
- Add code for destroying the thread-local storage data, but don't use
it yet.
- Don't release apartment on changing modes because we didn't add a
reference anywhere.
- Quieten the RPC_E_DISCONNECTED error message as it is an expected
return code.
- Treat IID_NULL the same as IID_IUnknown.
- Make tests compile on Win95 again.
- Fix copy+paste error where the test failure should be from the
CoUnmarshalInterface function.
- Give IUnknown its own ifstub to fix ref-counting and ipid storage
issues.
- Add a new flag SORFP_NOLIFETIMEMGMT to tell the proxy manager not to
call any IRemUnknown functions.
- Move the low-level unmarshaling code into a new function,
unmarshal_object, so that it can be easily reused for unmarshaling
IRemUnknown.
- Consolidate more stub creation details into register_ifstub.
- Replace the current wine_marshal_id structure with STDOBJREF for the
on-the-wire format.
- Initialize clsid member to the marshaler clsid to fix custom
marshaling.
- Make proxy shutdown test succeed by releasing the channel on
disconnect.
- Remove wine_marshal_data: it is unneeded and there is no equivalent in
STDOBJREF.
- Remove obsolete structs, rearrange things to group the structs
together and to group similar functions.
- Document thread-safety of members of structs.
- Document CoSetState & CoGetState.
- Rewrite them to only retrieve TLS info once.
- Remove trailing whitespace in COM_CurrentInfo.
- Release the client security objects when no longer needed (reported by
Mike McCormack).
- Implement CoSetProxyBlanket, CoQueryProxyBlanket and CoCopyProxy.
- Update todo list.
- Destroy stubs on apartment shutdown.
- Make MTA dynamically allocated so that proxies and other resources
are freed at the proper time.
- Changed/removed some incorrect comments regarding apartments.
Mike Hearn <mh@codeweavers.com>
- Various formatting/style changes.
- Force context switch on chanbuf disconnect to avoid a race in the test
suite.
Mike Hearn <mh@codeweavers.com>
Robert Shearman <rob@codeweavers.com>
- Rework RPC dispatch layer to be simpler and not get confused by
server/client duality.
- Make threads shut down at the right time and not access freed memory
after apartment destruction.
- Rename stub_dispatch_thread to client_dispatch_thread.
- Add some more tracing
- Check return value of WaitNamedPipe.
- Change named pipe timeouts to 0.5s, which should be enough for even the
slowest machines.
Christian Costa <titan.costa@wanadoo.fr>
- CoInitialize(Ex) should return S_FALSE when COM is already initialized
for the current thread.
svn path=/trunk/; revision=13532
- Prepared cdfs for using CcInitializeCacheMap/CcUninitializeCacheMap instead of CcRosInitializeFileCache/CcRosReleaseFileCache.
svn path=/trunk/; revision=13531
Mike McCormack <mike@codeweavers.com>
- add support for Edit boxes in MSI dialogs
- run the message loop when waiting for threads or processes
- fix the dialog font
- allow waiting on a handle while running the message loop
- implement checkboxes in dialogs
- use TextStyle enumeration instead of numbers
- fix MSI_IterateRecords to return the correct count
- Add more dialog controls, do something when they're clicked on.
- Implement MsiPreviewDialog.
- Implement and document MsiLoadString.
- Added stub implementations for MsiPreviewDialog and
MsiPreviewBillboard.
- Fix MsiModifyView and MsiViewGetColumnInfo to use MSIRECORD* not MSIHANDLE.
- Implement, test and document MsiDecomposeDescriptor.
- Handle a number as a parameter for custom action 19.
- Move OpenQuery into msiquery.c and make it non-static.
- Fix and test inserting records.
- Fix refcounting, use Interlocked functions.
- MsiEvaluateCondition returns an error when passed NULL as a
condition.
- Lock record in MsiViewExecute, move stubs to end.
- Fix MsiRecordSetString for NULL strings and update test case.
- Fix a bug caused by freeing memory too soon in the table code.
- Update headers, add MsiGetUserInfoA stub implementation.
- Fix a memory leak in MsiConfigureProductExW.
- Indentation and style cleanup.
- implement MsiOpenPackageEx, and forward MsiOpenPackage there
- make a MSI_CreatePackage function and use it in MSI_OpenPackage
- move MsiOpenPackageA down with the rest of the API functions
Juan Lang <juan_lang@yahoo.com>
- Partially implement AppSearch action.
- If a full path isn't specified, search across all fixed drives.
- Simplify AppSearch error checking.
- Identifiers evaluate to true if they are non-empty, regardless of
value.
Aric Stewart <aric@codeweavers.com>
- action.c is getting too big, so split out all the handling of
CustomActions into custom.c. Cleaned up a lot of the handling of
custom actions including scripting actions and processing return
codes.
- Mike McCormack pointed out that MsiFormatRecord is basically the
same as internal function deformat_string. So broke deformat_string
out and updated it to function as MsiFormatRecord and implemented
MsiFormatRecord.
- A number of random fixes to action.c including properly calculating
the length for the LocalPackage name, not forcing a reboot when
really we should just return ERROR_INSTALL_SUSPEND and handling
REG_MULTI_SZ now that we can deformat the properly.
- Move the guid squishing functions out of msi.c and make a new
registry.c file. Also clean up all the various registry keys we need
to open and create to this module and modify the functions for msi.c
to call these functions.
- Added a few more stub implementations.
- Implement custom action type 19, Halt install and display error
message.
- Continued work to simplify the ProcessAction call, also split it into
a ProcessAction and ProcessUIAction for future dialog box work.
Also fix a bug in deformat_string where i was not freeing the created
record.
- Make a temp file for each dll saved for custom actions. This prevents
name collisions from causing custom actions to fail.
- Do not track the temp files for custom actions based on the name from
the table because then we get conflicts and files not tracked or
cleaned up.
- Add the RegisterUser action.
- Implement RegisterExtensionInfo and RegisterMIMEInfo.
- Add logic to be able to resolve the SourceDir based on
CurrentPath. Also add logic to get the source locations of a file if
it is not in a cabinet.
- Finish up the framework by stubbing out all the remaining Standard
actions.
- A fix to deformat_string so it only returns a null return if you
provided a null buffer.
- Eliminate the giant if.. else if block from ACTION_ProcessAction in
favor of a table of handlers.
- Return code of the install should not depend on the return code of the
final action.
- Update component installed states as they are installed so that
conditions based on component states are at least a little more
correct.
- Add icon and argument when regestering clsids.
- Add a stub for ResolveSource because we do that work just not in
ResolveSource like we should.
- When quering a Component state return the correct state.
- Enable the updating of Feature and thus the resulting component
states.
- Run the end of install actions for suspend and user exit states as
well.
- Start putting in place a currently running state for future ui use.
- Use the new registry functions in registry.c.
- Do not force a reboot, just return ERROR_INSTALL_SUSPEND and write
some keys to the registry.
- Quite a few fixes:
- Allow for the queing of custom actions to trigger on the
InstallExecute or InstallExecuteAgain actions.
- allow for the queing of custom actions to trigger on
InstallFinalize.
- Properly set the CustomActionData property for said queued actions.
- Implement RegisterProduct.
- Beginning implementation of ForceReboot.
- Don't kill install if an item to be duplicated does not exist.
- Write out SourceList and LastUsedSource for resuming installs.
- Use regsvr32 to register self reg dlls.
- Implementations for SelfRegModules and PublishFeatures.
- Set default ACTION property for Install.
- Deformat more than JUST properties properly. Allows for Files and
Component paths in deformat.
- Properly deformat a LaunchCondition failure dialog box.
- Resolve and save registry Keypaths.
- Write the Features published keys more correctly. Still some
problems.
- First implementation of the WriteIniValues action.
- Custom actions can have null in their target parameters, handle that
without crashing. Also enable deformating of lines greater than 256
characters.
- Added some more suminfo stubs.
- An implementation of MsiSummaryInfoGetPropertyW based off of
MsiSummaryInfoGetPropertyA.
- Added stubs for MsiGetShortcutTargetA/W.
- Do a very basic first implementation of MsiConfigureProductExW for
msiexec /@ when run as a reboot.
- Also add a number of new stubs for the office xp and 2k3 install and
startup process.
- Fix a copy and paste error, check for a null value and discard
unneeded errors.
- Do not limit properties to 256 characters when evaluating them.
- Setting a record to an empty string is the same as making it null.
- First pass implement ion of MsiQueryProductState[A/W] as well as a few
fixes for MsiGetComponentPath.
- Actually start on an implemention for MsiGetComponentPathW that should
handle all keypaths that are files.
- A reworking of format.c to remove the recursion, clean things up and
stabilize behavior to match windows.
- Cleanup processing a bit more.
- Allow for nested keys to work properly.
- MsiGetProperty does not return any error on missing properties.
- The new Insert fixes now properly require ?,? instead of just ? for
the Insert call. This fix modifies the MSI_SetProperty query to be
correct.
Michael Stefaniuc <mstefani@redhat.de>
- Do not check for non NULL pointer before HeapFree'ing it. It's
redundant.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Ulrich Czekalla <ulrich@codeweavers.com>
- Handle 0 length buffers in MSI_FormatRecordW.
- Remove unused buffer in deformat_string.
Mike Hearn <mh@codeweavers.com>
- Correctly ensure properties set from resolved directory paths are
backslash terminated.
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Marcus Meissner <meissner@suse.de>
- Initialize rc in create_component_directory().
Alexandre Julliard <julliard@winehq.org>
- Avoid unnecessary run-time initializations.
svn path=/trunk/; revision=13518
Juan Lang <juan_lang@yahoo.com>
- Make netspi.h private, as some of its declarations conflict with
npapi.h. Spotted by Paul Vriens.
Jonathan Ernst <Jonathan@ErnstFamily.ch>
- Updated French resources.
Henning Gerhardt <henning.gerhardt@web.de>
- Update German resources.
svn path=/trunk/; revision=13516
Carlos Lozano <clozano@andago.com>
- Fix regression in Fallout game.
Remi Assailly <remi.assailly@free.fr>
- char -> const char fixes.
Robert Reif <reif@earthlink.net>
- Copy data structures one at a time using supplied size.
svn path=/trunk/; revision=13515
- Update German resources.
Robert Shearman <rob@codeweavers.com>
- Draw a representation of a document in the page setup dialog.
- Change some FIXME's to TRACE's because everything we need is
implemented and they fire for ones that we don't need to implement.
Remi Assailly <remi.assailly@free.fr>
- char -> const char fixes.
Jose Manuel Ferrer Ortiz <jmfo1982@yahoo.es>
- Updated Spanish resources.
Dmitry Timoshkov <dmitry@codeweavers.com>
- Correct coordinates of a couple of controls.
- Do not forget to allocate internal OPENFILENAMEW structure for 16-bit
GetOpenFileName, initialize it by zeros for 16/A cases.
- Make GetOpenFileNameW with an old style open file dialog work with the
original OPENFILENAMEW structure, making sure that all changes are
passed back to the caller.
Ulrich Czekalla <ulrich@codeweavers.com>
- GetFileName31W should call unicode version of FD31_AllocPrivate.
Jonathan Ernst <Jonathan@ErnstFamily.ch>
- Updated French resources.
svn path=/trunk/; revision=13514
Francois Gouget <fgouget@free.fr>
- Assorted spelling fixes.
Dimitrie O. Paun <dpaun@rogers.com>
- Use the LVCFMT_{LEFT,RIGHT,CENTER} enumeration flags properly.
Alexandre Julliard <julliard@winehq.org>
- Store the "managed" flag as a window property instead of the
Wine-specific WS_EX_MANAGED style bit.
Paul Vriens <Paul.Vriens@xs4all.nl>
- Remove needless check for horizontal or vertical pager.
Paul Vriens <Paul.Vriens@xs4all.nl>
- Remove the checking/setting of the defaults in TRACKBAR_Create.
svn path=/trunk/; revision=13513
- split initialization in more files to make it more readable
- cleaned up some code
- simplified some code
- documented some todos
svn path=/trunk/; revision=13500
succeeds. We previously left the function without initializing
hSemaphore. Patch suggested by me and executed by hpoussin.
svn path=/trunk/; revision=13483