|
Hi
I have written a plugin but don't know how to register it so that i can use it.
can anybody tell me how can i register a plugin.
regards
sAqIb
"Our scientific power has outrun our spiritual power. We have guided missiles and misguided men."
Dr. Martin Luther King Jr.
|
|
|
|
|
regsvr32 <path to="" plugin="">
should suffice
use
regsvr32/u <path to="" plugin=""> to unregister it
redindian
|
|
|
|
|
thanks dear. i will test it soon
regards
sAqIb
"Our scientific power has outrun our spiritual power. We have guided missiles and misguided men."
Dr. Martin Luther King Jr.
|
|
|
|
|
Does anyone know why CoCreateInstance for IShellWindows fails if called by an IE extension running in windows service?
Code for creating service:
SC_HANDLE hSCM = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
if (!hSCM)
{
WriteMainLog(_T("INSTALL: OpenSCManager error."));
return FALSE;
}
SC_HANDLE hService = ::CreateService(hSCM,
SERVICE_STR_ID,
SERVICE_STR_ID,
SERVICE_ALL_ACCESS,
SERVICE_WIN32_OWN_PROCESS |
SERVICE_INTERACTIVE_PROCESS,
SERVICE_AUTO_START, // start condition
SERVICE_ERROR_NORMAL,
gszFileNewPath,
NULL,
NULL,
NULL,
NULL,
NULL);
if( !hService )
{
WriteMainLog(_T("INSTALL: CreateService error."));
return FALSE;
}
....
hr = CoCreateInstance(__uuidof(SHDocVw::ShellWindows),
NULL,
CLSCTX_ALL,
IID_IShellWindows,
(void**)&spShWin);
if( FAILED( hr ) )
{
_com_error er(hr);
_stprintf(err, _T("[MTProcessesInfo::GetURLInformation]. spShWin.CoCreateInstance. %s\r\n"), er.ErrorMessage());
WriteSpyLog(err);
return FALSE;
}
Error: "Class isn't registered".
|
|
|
|
|
Didn't you like my answer in the other thread you started for this ?
Try This First
at least try what I suggested first before reposting on a different board.
anyway this is a COM question, not an ATL/STL or WTL one.
-- modified at 10:47 Friday 27th October, 2006
Darka [ Xanya]
"I am not a slave to a god that doesn't exist."
|
|
|
|
|
Hi
Question 1:
When we create an COM object in a Process where does the memory of the COM objects get allocated?
Question 2:
Does the memory allocated to the COM object contributed to increase in Virtual memory of the process where it is instantiated.?
Question 3:
What is the relation between virtual memory of a process and private bytes of the process?
for Ilanthendral(KillerInstincts)
for thendral
|
|
|
|
|
When we create a COM Object in a Process memory of the COM Objects get allocated in 'Heap Portion' allocated to the process.
And yes memory allocated to the COM Object contributes to increase in virtual memory of the process.
And regarding third question, actullay I could understand what you are trying to ask? Can you please clarify 'private bytes' of the process.
Thanks,
Suraj
Suraj Gupta
|
|
|
|
|
IElementBehaviorFactory* pEBFactory = NULL;
//Create my com object of implementing IElementBehaviorFactory interface
CoCreateInstance(CLSID_Factory, NULL, CLSCTX_INPROC_SERVER,IID_IElementBehaviorFactory, (void**)&pEBFactory);
//Mashal IElementBehaviorFactory
hr = CoMarshalInterThreadInterfaceInStream(IID_IElementBehaviorFactory, pEBFactory, &pStm);
The return value hr is 0x80004002, why?
The default value of [HKEY_CLASSES_ROOT/Interface/{3050F429-98B5-11CF-BB82-00AA00BDCE0B}/ProxyStubClsid32] is {B8DA6310-E19B-11D0-933C-00A0C90DCAA9}.
{B8DA6310-E19B-11D0-933C-00A0C90DCAA9} is the class id of actxprxy.dll.
I think that actxprxy.dll is the proxy/stub for IElementBehaviorFactory, but I don't know why CoMarshalInterThreadInterfaceInStream call fail for IElementBehaviorFactory.
|
|
|
|
|
With the help of new ATL object i have done OLEDB connection and now table.h header file is created in my project with all the table field varaible in that...now i want to insert Data from remote server to msaccess database..but i dont know how to do coding for that..can anybody help me...to do coding...how to start..if any question pls ask and try to help me..
Thank you
|
|
|
|
|
|
We have a function which has the following signature
SomeFunction(TCHAR* szPassword,TCHAR* szEncryptPwd)
Now we need to pass in a std::string as the first parameter,and convert the second parameter back into a std::string on return.
How is the conversion from std::string to TCHAR* and back to std::string done?
|
|
|
|
|
|
Hello,
Just use W2A(…) macro. More information on MSDN.
Regards,
Leonid
|
|
|
|
|
Hi. I'm new to writing Active-X controls and have a few quesitons which I couldn't find answers for in the archives. Here's what I'm trying to do. If you have a better suggestion, please respond.
We are using Visual C++ 6.0 and EVC++ 4.0 and ATL (no MFC). I want to create a collection of ActiveX controls which will all be derived from one base control so I can use a vector of them in a container window. My main quesiton:
- Is it even possible to derive new ATL ActiveX controls from a base ATL ActiveX control? I'm thinking like in regultar C++ if I create a base ActiveX control for, say, a button, then derive other types of buttons from that and override their OnDraw() or OnPain() methods, I can just have a vector of these base buttons. Am I off in left field?
Thanks,
Mark.
Mark Malin
Software Developer
GE Healthcare
|
|
|
|
|
markjmalin wrote: Am I off in left field?
More like left-center.
No you cannot derive from ActiveX controls because you cannot derive from COM objects.
markjmalin wrote: I can just have a vector of these base buttons.
For what purpose is the vector? Not to use the OnDraw() or OnPaint() methods right? All COM objects already share a common interface "IUnkown", so technically you could store that in the vector, but for what purpose?
led mike
|
|
|
|
|
The idea was to have a container window class of some sort which would contain any number of ActiveX controls. These would be diverse (buttons, grids, graphs, etc.). I figured a vector could contain maybe pointers to these, but in my non-COM object oriented brain I'm thinking they all need to derive from some common class, then. Each one would handle it's own drawing and functionality.
Our current design uses a template struct, "ViewHost", which contains a CAxWindow and a CComPtr member. This struct wraps the creation of the ActiveX controls. Our current design hard-codes different container window types to contain specific ActiveX controls. I'm working on redisigning it and want to be able to take any container window and put whatever controls I want in it. My thought was a vector of our "ViewHosts" in each container, but since ViewHost is a template (and since it contains CComPtr which is a template), the compiler needs to know at compile time what class each one is. So that kills my idea of a vector of ViewHost structures containing any kind of ActiveX control.
Anyhow, that's why I thought "if I can derive these controls from some common base class I can have a vector of them"
Any thoughts? Are you sure I'm only "off center"?
Mark.
Mark Malin
Software Developer
GE Healthcare
|
|
|
|
|
markjmalin wrote: to be able to take any container window and put whatever controls I want in it
CAxWindow already does that so I am completely confused at this point.
led mike
|
|
|
|
|
Hm.... I need to look at our design. The guy who did the design is no longer here. One thing we've done is create our own private heap class. It's very likely he wrapped this code to make use of our own New and Delete methods in our private heap.
So you're saying a guy could have a vector of any number of CAxWindow's and be good to go?
(sorry for the ignorance -- I'm not all that adept at ActiveX and COM)
Mark.
Mark Malin
Software Developer
GE Healthcare
|
|
|
|
|
markjmalin wrote: So you're saying a guy could have a vector of any number of CAxWindow's and be good to go?
Well not yet since you still did not explain "why" you need anything in a vector. So far all you mentioned was the painting routines which are already managed from a calling stand point so there would be no need for you to access any of these objects at runtime in association with painting.
led mike
|
|
|
|
|
Sorry. The ActiveX controls have methods that need to be called on them. Obviously things like painting happen already. These controls are things like real-time graphs (strip charts) for instance, which have data sent to them, status information, etc. There are numeric displays that a user might interact with via touch-screen, which might visibly change based on user input. We're using a "Model/View/Controler" pattern, and the "View" part of that will contain the ActiveX controls for user input and display of information. The Model and Controller (also COM objects) process user input events from the View and change the display of the ActiveX controls where needed.
So I need some way for the Model to manage the View. Since the View is a container of ActiveX controls, the Model needs access to these to update them and make visual changes via calling methods on them. If a View container can have any number of diverse ActiveX control on it, I thought a vector would be a good route.
Our current design has specific View containers pre-defined. It's a very non-flexible design. One pre-defined view might always have 3 buttons along the top, so there are 3 "ViewHost" members containing buttons. It may always have a static text box, so there's one "ViewHost" member for that. When the user touches the button, maybe the next step is for the other two buttons to dissapear and the text to change. The Model needs to have access to the View's ActiveX controls to tell the 2 buttons to make themselves invisible, and push some text into the text box.
Hope that makes it clearer.
Mark.
Mark Malin
Software Developer
GE Healthcare
|
|
|
|
|
markjmalin wrote: the Model needs access to these to update them and make visual changes via calling methods on them.
MVC pattern should utilize "events" to notify listeners of data changes. Then listeners "pull" data. This way the Model remains isolated from knowing about Controllers or Views. This is a major factor in the MVC design.
In your case it sounds like your View windows (the containers of all the CAxWindows) might be good candidates for registering for the data events. Then each View would have the logic about how to call methods in all it's child windows to update their displays.
Does that help?
led mike
|
|
|
|
|
That helps a great deal. Thanks!
Mark.
Mark Malin
Software Developer
GE Healthcare
|
|
|
|
|
I'm working on a data processing application where the user selects the data source and relevant fields at runtime. No matter what the source (Access, Excel, MySQL, etc) I am able to retrieve the table names and column information. But for any non-access data source, when I query it, there are no rows returned and the application crashes on my MoveFirst call. Here is the source, and forgive me, this is my first time with ATL:
<br />
CDataSource source;<br />
CSession sess;<br />
<br />
CTable<CDynamicAccessor> rs;<br />
<br />
USES_CONVERSION;<br />
<br />
if(source.OpenFromInitializationString(A2OLE(m_lpFilename))!=S_OK)<br />
return FALSE;<br />
<br />
<br />
if(sess.Open(source)!=S_OK)<br />
{<br />
sess.Close();<br />
source.Close();<br />
<br />
return FALSE;<br />
}<br />
<br />
<br />
CString sSQL="..."<br />
<br />
<br />
rs.Open(sess,sSQL);<br />
<br />
HRESULT hr=rs.MoveFirst();<br />
The debugger asserts on the rowset being NULL, so I take it nothing was returned from the data source but queries run against the database (like in the MySQL console) return rows.
Any idea at all whats going wrong?
Thanks,
Aaron
modified 12-Jul-20 21:01pm.
|
|
|
|
|
CTable doesn't accept an SQL-string as argument, it expects a table name. It could be the case that CTable crashes due to poor error handling. Have you tried with CCommand?
--
LOADING...
|
|
|
|
|
You're right, its not supposed to accept SQL. Very odd that it would in certain cases. Now that I've addressed that, everything is working great. Thanks!
modified 12-Jul-20 21:01pm.
|
|
|
|