I've managed to sort this out - the problem was that the LoggingCollection object technically was a group of objects, even though there was only one of them. Using an invoke command to return the handle of item 1 in this group seems to work.
The code below uses Canalyzer to convert .asc files to .mat files...
% This script allows matlab to control the conversion of Canalyzer .asc files to matlab .mat files
%Opens COM server - best to already have Canalyzer running with the correct configuration open
app = actxserver('CANalyzer.Application');
Get handle of logging collection object
logging = app.Application.Configuration.OnlineSetup.LoggingCollection;
% Select first logging block
export1 = invoke(logging, 'Item', 1);
% clear sources and write new source
invoke(export1.exporter.sources, 'Clear');
invoke(export1.exporter.sources, 'Add', 'C:\test.ASC');
% clear destinations and write new destination
invoke(export1.exporter.destinations, 'Clear');
invoke(export1.exporter.destinations, 'Add', 'C:\test.mat');
invoke(export1.exporter,'Load')
invoke(export1.exporter,'Save','True')