|
Can anyone point me to manual, where i can read about developing datasource?
I mean i need to implement my own datasource... where to read about?
|
|
|
|
|
Can i set a control properties dynamically? If so how can/should I?
|
|
|
|
|
Hi,
How do I determine if a folder is remote using the IShellFolder::GetAttributesOf call ?
I can determine 'Removable' easy enough, I think it is a bad omission in this interface if one cannot also check 'Remote'.
Cheers,
Liam.
|
|
|
|
|
Hi Liam
Use SHGetDataFromIDList instead, and specify SHGDFIL_DESCRIPTIONID in nFormat parameter. Network items are SHDID_NET_*.
|
|
|
|
|
Hi,
I need to know how to obtain an IShellFolder interface to a specific folder without traversing the namespace from the root.
Is this possible ?
Any thought appreciated.
Cheers,
Liam.
|
|
|
|
|
Hi
If you have the fully qualified PIDL to that folder you can use the BindToObject method. Use Desktop IShellFolder interface to do this (get it with SHGetDesktopFolder).
|
|
|
|
|
Ok, I've created a "full control" in atl object wizard.
Edit, radio, etc - ok, except listbox nd combo.
The subclassed listbox control window somehow becomes a little bit smaller, then dimensions i used in m_ctlZZZ.Create(...,rect,...)
why?
where to debug?
|
|
|
|
|
Is this interface useful? Is it implemented by shell extensions or by the shell itself?
How can I obtain the IShellIcon interface from a IShellFolder object to obtain its icon?
I haven't found any examples in the net about using this interface.
(I'm using plain C, not C++, so I treat objects as structs via lpVtbl)
Thanks
|
|
|
|
|
1. How can I create COM - server in ATL 3.0 (Visual Studio 6) for common clients resources,for example
I want to sum and save data received from any clients?
2. I create DCOM with ATL 3.0 but it begins to work only if I make mount from client-machine
(WINNT 4.0 SP. 5) on server-machine (WINNT 4.0 SP. 5) and
after that run server.exe -regserver on client-machine.
I think it is not good way and may be anybody has other decision?
Thanks in advance
O.K.
|
|
|
|
|
1. It is needed in Interface to add DECLARE_CLASSFACTORY_SINGLETON(<class name="">).
2. Instead of mount you may to register server on the client-machine in the manner:
\\server-computer-name\drive\server.exe - regserver
It is not good also, but you must not make mount.
|
|
|
|
|
I am trying to create a Database for which I am writing a function in an ATL DLL.Now , I have a doubt if ATL supports DAO.It not how can I create a Database with a ATL DLL !
Thanx in advance for help !
Y.Yamini Devi
|
|
|
|
|
I am trying to create a Database for which I am writing a function in an ATL DLL.Now , I have a doubt if ATL supports DAO.It not how can I create a Database with a ATL DLL !
Thanx in advance for help !
Y.Yamini Devi
|
|
|
|
|
In my COM object with MFC support I want to install a timer:
::SetTimer(NULL, TIMER_ID, 1000, (TIMERPROC)TimerProc);
Then I declare TimerProc() in COM class as:
VOID CALLBACK TimerProc(
HWND hwnd, // handle to window for timer messages
UINT message, // WM_TIMER message
UINT idTimer, // timer identifier
DWORD dwTime) ; // current system time
and define as:
VOID CALLBACK TimerProc(
HWND hwnd, // handle to window for timer messages
UINT message, // WM_TIMER message
UINT idTimer, // timer identifier
DWORD dwTime) // current system time
{
// Do something
}
But I've got a compiler error:
error C2440: 'type cast' : cannot convert from '' to 'void (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,unsigned long)'
None of the functions with this name in scope match the target type
What am I doing wrong ?
|
|
|
|
|
1. If you really "declare TimerProc() in COM class as:... " - this is a mistake, you cannot use in such way member fuction as a callback.
2. If not so, just
void CALLBACK TimerProcedure(HWND hWnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTimer)
{
//some_action;
}
STDMETHODIMP CZZZControl::SomeMethod()
{
m_nEvent = ::SetTimer(some_params);
}
3. May be you are trying to use not ::SetTimer, but CWindow::SetTimer
Wish you luck!
|
|
|
|
|
First of all Thanks for your help.
I have found at MSDN site that for MFC application it is necessary to declare a callback function as a static, so I did and now it works fine.
Dimitri.
|
|
|
|
|
Hi, friends,
Who can run the MTS sample: SampleBank provided by MTS. Whether I should create a database in SQL server first?
|
|
|
|
|
in MTS 2.0, you can not find the sample, so who can help me?
|
|
|
|
|
I deleted an interface method and and tried to add it again but I get the following errors twice when compiling:
...\include\atlcom.h(1827) : error C2259: 'CComObject<class cessunit="">' :
cannot instantiate abstract class due to following members:
...\include\atlcom.h(1823) : while compiling class-template member
function 'long __stdcall ATL::CComCreator<class atl::ccomobject<class
cessunit=""> >::CreateInstance(void *,const struct _GUID &,void ** )'
...\include\atlcom.h(1827) : warning C4259: 'long __stdcall
IESSUnit::ClassDescription(void)' : pure virtual function was not defined
...\esscounit.h(205) : see declaration of 'ClassDescription'
...\include\atlcom.h(1823) : while compiling class-template member
function 'long __stdcall ATL::CComCreator<class atl::ccomobject<class
cessunit=""> >::CreateInstance(void *,const struct _GUID &,void ** )'
I've tried removing every instance of 'ClassDescription', restarting DevStudio and rebuilding the entire COM. I've tried adding the method without arguments. Nothing works. Any suggestions?
Dave
Dave
http://www.unit-conversion.com
http://www.essco.co.uk
|
|
|
|
|
hey Dave,
Devstudio also generates a .rgs file, look inside and you'll find that it like a .reg file.
You can manually update this but its like modifing generated code...
If your up to it, recreate the project and re-add the methods.
Let me know how you go.
Jules
|
|
|
|
|
Thanks for replying. When I looked in my three .rgs files (one for each of my interfaces) I didn't find anything that relates to the individual methods, only the interface itself. What am I meant to do with this file?
Dave
http://www.unit-conversion.com
http://www.essco.co.uk
|
|
|
|
|
I use in dialog-based application ActiveX object (1) and in ActiveX object (1) second ActiveX object (2). I don`t use events from first ActiveX (1) in second ActiveX (2). Please, help me. Thanks.
Ivan
|
|
|
|
|
Ivan,
I assume you are asking if your DialogApp can receive event from the 2nd
ActiveX Control.
You need to somehow get access to ActiveXCtrl2 and I recommend that that you
implement a mehtod in ActiveXCtrl1 like:
HRESULT GetActiveX2(IUnknown** ppUnknown);
Which will supply you with the Interface pointer.
Then you can do the usual QueryInterface stuff to get a handle to the ctrl.
That then leads to Asking for the ConnectionPointContainer etc.
This is assuming C++ of course.
Sorry I couldn't go into more detail, but there just so much I didn't know
where to start.
Jules
|
|
|
|
|
Can I insert first ActiveX object into second ActiveX objekt and use second ActiveX object in dialog-based application. Thanks.
Ivan
|
|
|
|
|
hi
I would like to know where can I download the audio source code for Windows CE(ATL COM)?
|
|
|
|
|
Hi, I'm not sure that this is the right forum but I coldn't find any "Shell" forum. I'm sorry if this is the wrong forum (please correct me if so).
I'm currently developing a shell extension that resides on desktop. It uses a database for dynamic subfolders display. Each subfolder could possibly have different types of mount points (e.g. Compound file, a directory or database "fs"...).
ShExt
|
A Folder (DB Retrieved "root" folder)
....|
Compound "fs"
Next Folder (DB Retrieved "root" folder)
....|
Database "fs"
etc...
Many Thanx in Advance
Mario
Problems/Questions:
P1) Each "root" folder needs a login: When a new "root" folder is about to expand i use SHChangeNotify with SHCNE_MEDIAREMOVED (since i've marked the "root" folders as removable) to compress the possibly old expanded folder is being compressed. The problem is that explorer is wery slow, it always enumerates the new folder before compressing the old one and makes it really messy.
Q1) Is it some way of making explorer to compress it first and then use the enumerator? (I don't want to do any "hacking" in the tree pane...
P2) Since my implementation internally just uses UNICODE and I don't have a Win95 box: I don't like to have separate distributions of my program at least internally the same, except for the UI stuff...
Q2) Does Win95 query for e.g. IExtractIconW or does it just uses IExtractIcon ?
P3) Not really a problem, but laziness (or rather less code to maintance)?
Q3) Is there any "generic" helper object that I could use for the view pane if no custom is needed (that takes IShellFolder* param and uses the enumerator, IExtractIcon etc... and populates it...)?
P3) Well... not a problem, rather a general question?
Q4) Why do explorer (on my Win200 machine) seems so "sloppy" in terms of instantiating uneccesary many times?
Dump (I've written the component in ATL :
FinalConstruct
Initialize
GetClassID
FinalConstruct
Initialize
EnumObjects
FinalConstruct
Next, GetDisplayNameOf
Next, GetDisplayNameOf
Next, GetDisplayNameOf
Next
FinalRelease
FinalRelease
FinalRelease
// Ok, until here (seems to use threads to do above stuff)
// Here the strange stuff begins... It seems, for me anyway,
// wase of computational power doing that many
// instantiation of the object?
// (Lucky me that I don't do that much in the Initialization process (FinalConstruct,
// Initialize), merely store the pidl for futher use,
// but one might have to do some more processing one day in the Initialization routine)
FinalConstruct
Initialize
GetDisplayNameOf
GetUIObjectOf
FinalRelease
FinalConstruct
Initialize
GetDisplayNameOf
GetUIObjectOf
FinalRelease
FinalConstruct
Initialize
GetDisplayNameOf
GetUIObjectOf
...
|
|
|
|