Results 1 to 17 of 17

Thread: Active X

  1. #1

    Thread Starter
    Banned ThaRubby's Avatar
    Join Date
    Apr 2005
    Location
    127.0.0.1
    Posts
    356

    Active X

    When I make an Active X project and run it, it says Unknown Publisher and it doesnt even give the option to run the project or not just says it was blocked...

  2. #2
    Ex-Super Mod RobDog888's Avatar
    Join Date
    Apr 2001
    Location
    LA, Calif. Raiders #1 AKA:Gangsta Yoda™
    Posts
    60,709

    Re: Active X

    ActiveX projects, either ActiveX Dll or ActiveX EXE are components that are to be used in other projects/programs.
    You can not directly run an ActiveX project. What are you trying to do?
    VB/Office Guru™ (AKA: Gangsta Yoda®)
    I dont answer coding questions via PM. Please post a thread in the appropriate forum.

    Microsoft MVP 2006-2011
    Office Development FAQ (C#, VB.NET, VB 6, VBA)
    Senior Jedi Software Engineer MCP (VB 6 & .NET), BSEE, CET
    If a post has helped you then Please Rate it!
    Reps & Rating PostsVS.NET on Vista Multiple .NET Framework Versions Office Primary Interop AssembliesVB/Office Guru™ Word SpellChecker™.NETVB/Office Guru™ Word SpellChecker™ VB6VB.NET Attributes Ex.Outlook Global Address ListAPI Viewer utility.NET API Viewer Utility
    System: Intel i7 6850K, Geforce GTX1060, Samsung M.2 1 TB & SATA 500 GB, 32 GBs DDR4 3300 Quad Channel RAM, 2 Viewsonic 24" LCDs, Windows 10, Office 2016, VS 2019, VB6 SP6

  3. #3
    Ex-Super Mod RobDog888's Avatar
    Join Date
    Apr 2001
    Location
    LA, Calif. Raiders #1 AKA:Gangsta Yoda™
    Posts
    60,709

    Re: Active X

    If my memory serves me correctly, you want to add a new Standard Exe project to your ActiveX project so
    they are both in the same instance of VB for an in-process ActiveX Dll. For an out-of-process ActiveX EXE
    you need a separate VB instance of a Standard Exe test project.
    VB/Office Guru™ (AKA: Gangsta Yoda®)
    I dont answer coding questions via PM. Please post a thread in the appropriate forum.

    Microsoft MVP 2006-2011
    Office Development FAQ (C#, VB.NET, VB 6, VBA)
    Senior Jedi Software Engineer MCP (VB 6 & .NET), BSEE, CET
    If a post has helped you then Please Rate it!
    Reps & Rating PostsVS.NET on Vista Multiple .NET Framework Versions Office Primary Interop AssembliesVB/Office Guru™ Word SpellChecker™.NETVB/Office Guru™ Word SpellChecker™ VB6VB.NET Attributes Ex.Outlook Global Address ListAPI Viewer utility.NET API Viewer Utility
    System: Intel i7 6850K, Geforce GTX1060, Samsung M.2 1 TB & SATA 500 GB, 32 GBs DDR4 3300 Quad Channel RAM, 2 Viewsonic 24" LCDs, Windows 10, Office 2016, VS 2019, VB6 SP6

  4. #4

    Thread Starter
    Banned ThaRubby's Avatar
    Join Date
    Apr 2005
    Location
    127.0.0.1
    Posts
    356

    Re: Active X

    Actualy i did this...i started a blank form Active X control packed it into a cab file. Then it gave me a little test file so i put on server clicked on the accept bar it said blocked..its just a blank form...:S

  5. #5
    Ex-Super Mod RobDog888's Avatar
    Join Date
    Apr 2001
    Location
    LA, Calif. Raiders #1 AKA:Gangsta Yoda™
    Posts
    60,709

    Re: Active X

    Thats an issue with your browsers ActiveX permission settings?
    I'm not sure what your trying to do. Are you trying
    to create a cab file for packaging and downloading from the web? This is not the way if it is that.
    VB/Office Guru™ (AKA: Gangsta Yoda®)
    I dont answer coding questions via PM. Please post a thread in the appropriate forum.

    Microsoft MVP 2006-2011
    Office Development FAQ (C#, VB.NET, VB 6, VBA)
    Senior Jedi Software Engineer MCP (VB 6 & .NET), BSEE, CET
    If a post has helped you then Please Rate it!
    Reps & Rating PostsVS.NET on Vista Multiple .NET Framework Versions Office Primary Interop AssembliesVB/Office Guru™ Word SpellChecker™.NETVB/Office Guru™ Word SpellChecker™ VB6VB.NET Attributes Ex.Outlook Global Address ListAPI Viewer utility.NET API Viewer Utility
    System: Intel i7 6850K, Geforce GTX1060, Samsung M.2 1 TB & SATA 500 GB, 32 GBs DDR4 3300 Quad Channel RAM, 2 Viewsonic 24" LCDs, Windows 10, Office 2016, VS 2019, VB6 SP6

  6. #6
    Hyperactive Member hassa046's Avatar
    Join Date
    May 2001
    Location
    Venlo, The Netherlands
    Posts
    336

    Re: Active X

    Quote Originally Posted by ThaRubby
    When I make an Active X project and run it, it says Unknown Publisher and it doesnt even give the option to run the project or not just says it was blocked...
    You have to sign the code (.dll or .exe) before you can use it in other apps/projects.
    Search for the program CodeSign on the microsoft website.
    Better to regret things you did, than those you didn't
    International Intelligence

  7. #7
    PowerPoster Dave Sell's Avatar
    Join Date
    Mar 2004
    Location
    /dev/null
    Posts
    2,961

    Re: Active X

    Even then, you still have to modify your client browser's security settings by adding the web server to the list of trusted sites.
    Nobody knows what software they want until after you've delivered what they originally asked for.

    Don't solve problems which don't exist.

    "If I had eight hours to cut down a tree, I'd spend six hours sharpening my axe." --- Abraham Lincoln (1809-1865)

    2 idiots don't make a genius.

  8. #8
    Hyperactive Member hassa046's Avatar
    Join Date
    May 2001
    Location
    Venlo, The Netherlands
    Posts
    336

    Re: Active X

    Quote Originally Posted by Dave Sell
    Even then, you still have to modify your client browser's security settings by adding the web server to the list of trusted sites.
    Actually not anymore. If you get a certificate (i use a free one http://www.ascertia.com/onlineCA/iss...aspx?linkID=40) and sign your activex cab with it, it requires only acceptation of this certificate.
    I would suggest only to change security settings in IE if you still get problems. I did that first also but is hard to manage and doesn't work always.
    Better to regret things you did, than those you didn't
    International Intelligence

  9. #9

    Thread Starter
    Banned ThaRubby's Avatar
    Join Date
    Apr 2005
    Location
    127.0.0.1
    Posts
    356

    Re: Active X

    Oh well if you have to change browser settings it isnt worth it.

  10. #10
    Lively Member CodeBlock's Avatar
    Join Date
    May 2005
    Location
    The_Universe.Milky_Way. Solar_System.Inner_Ring. The_Earth.Asia. India.TN. Chennai. Home_Sweet_Home
    Posts
    85

    Post Re: Active X

    Quote Originally Posted by Dave Sell
    Even then, you still have to modify your client browser's security settings by adding the web server to the list of trusted sites.
    Quote Originally Posted by hassa046
    Actually not anymore. If you get a certificate (i use a free one http://www.ascertia.com/onlineCA/iss...aspx?linkID=40) and sign your activex cab with it, it requires only acceptation of this certificate.
    I would suggest only to change security settings in IE if you still get problems. I did that first also but is hard to manage and doesn't work always.
    No, You DONT have to change IE Settings. You just have to make your ActiveX Control Safe for Scripting and Initialization.

    Hope the following would help many ppl for implementing your ActiveX control's security settings, without touching IE on the Client side.



    Steps on how to create a simple Visual Basic control and mark it safe for scripting and initialization.

    1. Create a new folder where you can save all files that you create in this example.

    2. Get the OLE Automation Type Library Generator from the Visual Basic CD-ROM. To do this, copy all four files from the \Common\Tools\VB\Unsupprt\Typlib\ folder to your project folder.

    3. Copy the following text into Notepad, and save the file in the project folder as Objsafe.odl:
    Code:
    [
    uuid(C67830E0-D11D-11cf-BD80-00AA00575603),
    helpstring("VB IObjectSafety Interface"),
    version(1.0)
    ]
    library IObjectSafetyTLB
    {
    importlib("stdole2.tlb");
    [
    uuid(CB5BDC81-93C1-11cf-8F20-00805F2CD064),
    helpstring("IObjectSafety Interface"),
    odl
    ]
    interface IObjectSafety:IUnknown {
    [helpstring("GetInterfaceSafetyOptions")]
    HRESULT GetInterfaceSafetyOptions(
    [in] long riid,
    [in] long *pdwSupportedOptions,
    [in] long *pdwEnabledOptions);
    
    [helpstring("SetInterfaceSafetyOptions")]
    HRESULT SetInterfaceSafetyOptions(
    [in] long riid,
    [in] long dwOptionsSetMask,
    [in] long dwEnabledOptions);
    }
    }
    4. At a command prompt, use the CD <path> command to move to the project folder, and type the following command to generate a .tlb file:
    MKTYPLIB objsafe.odl /tlb objsafe.tlb

    5. From Visual Basic, create an ActiveX Control project. In the Properties list, change the name of the project to IObjSafety and the name of the control to DemoCtl. Put a CommandButton named cmdTest on the control. In the Click event handler of the cmdTest, put a MsgBox "Test" statement.

    6. On the Project menu, click References, browse to and add Objsafe.tlb, which you created earlier.

    7. Add a new module to your project with the following code, and name the module basSafeCtl:
    VB Code:
    1. Option Explicit
    2.  
    3. Public Const IID_IDispatch = "{00020400-0000-0000-C000-000000000046}"
    4. Public Const IID_IPersistStorage = _
    5. "{0000010A-0000-0000-C000-000000000046}"
    6. Public Const IID_IPersistStream = _
    7. "{00000109-0000-0000-C000-000000000046}"
    8. Public Const IID_IPersistPropertyBag = _
    9. "{37D84F60-42CB-11CE-8135-00AA004BB851}"
    10.  
    11. Public Const INTERFACESAFE_FOR_UNTRUSTED_CALLER = &H1
    12. Public Const INTERFACESAFE_FOR_UNTRUSTED_DATA = &H2
    13. Public Const E_NOINTERFACE = &H80004002
    14. Public Const E_FAIL = &H80004005
    15. Public Const MAX_GUIDLEN = 40
    16.  
    17. Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
    18. (pDest As Any, pSource As Any, ByVal ByteLen As Long)
    19. Public Declare Function StringFromGUID2 Lib "ole32.dll" (rguid As _
    20. Any, ByVal lpstrClsId As Long, ByVal cbMax As Integer) As Long
    21.  
    22. Public Type udtGUID
    23. Data1 As Long
    24. Data2 As Integer
    25. Data3 As Integer
    26. Data4(7) As Byte
    27. End Type
    28.  
    29. Public m_fSafeForScripting As Boolean
    30. Public m_fSafeForInitializing As Boolean
    31.  
    32. Sub Main()
    33.     m_fSafeForScripting = True
    34.     m_fSafeForInitializing = True
    35. End Sub

    8. From Project Properties, change the Startup Object to Sub Main to execute the Sub Main above. Use the m_fSafeForScripting and m_fSafeForInitializing variables to specify the values of safe for the scripting and/or initialization variables. Make them both true, if you dont want to change your IE Settings

    9. Open the code window of your control. Add the following line of code to the Declaration section (right after Option Explicit or as the first), ie., General Declarations:

    VB Code:
    1. Implements IObjectSafety

    10. Copy the following two procedures to your control code:

    VB Code:
    1. Private Sub IObjectSafety_GetInterfaceSafetyOptions(ByVal riid As _
    2.       Long, pdwSupportedOptions As Long, pdwEnabledOptions As Long)
    3.  
    4.           Dim Rc      As Long
    5.           Dim rClsId  As udtGUID
    6.           Dim IID     As String
    7.           Dim bIID()  As Byte
    8.  
    9.           pdwSupportedOptions = INTERFACESAFE_FOR_UNTRUSTED_CALLER Or _
    10.                                 INTERFACESAFE_FOR_UNTRUSTED_DATA
    11.  
    12.           If (riid <> 0) Then
    13.               CopyMemory rClsId, ByVal riid, Len(rClsId)
    14.  
    15.               bIID = String$(MAX_GUIDLEN, 0)
    16.               Rc = StringFromGUID2(rClsId, VarPtr(bIID(0)), MAX_GUIDLEN)
    17.               Rc = InStr(1, bIID, vbNullChar) - 1
    18.               IID = Left$(UCase(bIID), Rc)
    19.  
    20.               Select Case IID
    21.                   Case IID_IDispatch
    22.                       pdwEnabledOptions = IIf(m_fSafeForScripting, _
    23.                     INTERFACESAFE_FOR_UNTRUSTED_CALLER, 0)
    24.                       Exit Sub
    25.                   Case IID_IPersistStorage, IID_IPersistStream, _
    26.                      IID_IPersistPropertyBag
    27.                       pdwEnabledOptions = IIf(m_fSafeForInitializing, _
    28.                     INTERFACESAFE_FOR_UNTRUSTED_DATA, 0)
    29.                       Exit Sub
    30.                   Case Else
    31.                       Err.Raise E_NOINTERFACE
    32.                       Exit Sub
    33.               End Select
    34.           End If
    35.       End Sub
    36.  
    37.       Private Sub IObjectSafety_SetInterfaceSafetyOptions(ByVal riid As _
    38.       Long, ByVal dwOptionsSetMask As Long, ByVal dwEnabledOptions As Long)
    39.           Dim Rc          As Long
    40.           Dim rClsId      As udtGUID
    41.           Dim IID         As String
    42.           Dim bIID()      As Byte
    43.  
    44.           If (riid <> 0) Then
    45.               CopyMemory rClsId, ByVal riid, Len(rClsId)
    46.  
    47.               bIID = String$(MAX_GUIDLEN, 0)
    48.               Rc = StringFromGUID2(rClsId, VarPtr(bIID(0)), MAX_GUIDLEN)
    49.               Rc = InStr(1, bIID, vbNullChar) - 1
    50.               IID = Left$(UCase(bIID), Rc)
    51.  
    52.               Select Case IID
    53.                   Case IID_IDispatch
    54.                       If ((dwEnabledOptions And dwOptionsSetMask) <> _
    55.                    INTERFACESAFE_FOR_UNTRUSTED_CALLER) Then
    56.                           Err.Raise E_FAIL
    57.                           Exit Sub
    58.                       Else
    59.                           If Not m_fSafeForScripting Then
    60.                               Err.Raise E_FAIL
    61.                           End If
    62.                           Exit Sub
    63.                       End If
    64.  
    65.                   Case IID_IPersistStorage, IID_IPersistStream, _
    66.                 IID_IPersistPropertyBag
    67.                       If ((dwEnabledOptions And dwOptionsSetMask) <> _
    68.                     INTERFACESAFE_FOR_UNTRUSTED_DATA) Then
    69.                           Err.Raise E_FAIL
    70.                           Exit Sub
    71.                       Else
    72.                           If Not m_fSafeForInitializing Then
    73.                               Err.Raise E_FAIL
    74.                           End If
    75.                           Exit Sub
    76.                       End If
    77.  
    78.                   Case Else
    79.                       Err.Raise E_NOINTERFACE
    80.                       Exit Sub
    81.               End Select
    82.           End If
    83.       End Sub

    11. On the File menu, save your project and files. Make an OCX file from your project. Your control now implements the IObjectSafety interface. To test it, insert the control in an .htm file.

    Ref: http://support.microsoft.com/kb/q182598/


    But this is not just enough. You must also Code Sign your .cab (If you are distributing it as a cab) or .ocx (if your .ocx is not archived on a cab but just directly downloadable. You can either Create CodeSign using the Visual Basic SDK. (You will find this under the Tools folder of your VStudio6 CD-ROM) or use: http://www.ascertia.com/ (where u have to create an account. TIP: Remember that in the registration process, you have to provide some valid information as they will get reflected in your certificate itself shown to the Client. So, once registered they are included in the certificate. )


    If this really helps you, please rate my post, thanks.

    To any Moderator: Please try to move this post to CodeBank or Utilities for better exposure.

    Enjoy! Make your VB Scripting Safe :Wink:

    Neo

  11. #11
    Lively Member CodeBlock's Avatar
    Join Date
    May 2005
    Location
    The_Universe.Milky_Way. Solar_System.Inner_Ring. The_Earth.Asia. India.TN. Chennai. Home_Sweet_Home
    Posts
    85

    Cool Re: Active X

    An easier alternative for Point #10

    Point No.10 is BIG because it helps you understand by trying out the different options. If you just want a working code here it is:
    VB Code:
    1. Private Sub IObjectSafety_GetInterfaceSafetyOptions(ByVal riid As _
    2.       Long, pdwSupportedOptions As Long, pdwEnabledOptions As Long)
    3.           pdwSupportedOptions = INTERFACESAFE_FOR_UNTRUSTED_CALLER Or _
    4.                                 INTERFACESAFE_FOR_UNTRUSTED_DATA
    5.           pdwSupportedOptions = pdwSupportedOptions ' All options are suported:
    6.           ' Meaning: Both Untrusted Caller(Scripting) and
    7.           ' Untrusted Data (Initialization) options are marked Safe.
    8.       End Sub
    9.  
    10.       Private Sub IObjectSafety_SetInterfaceSafetyOptions(ByVal riid As _
    11.       Long, ByVal dwOptionsSetMask As Long, ByVal dwEnabledOptions As Long)
    12.     ' This is when your browser asks you to change your settings.
    13.         ' You can ignore this Sub, if at all u need in a case where the browser
    14.         ' rejects the settings and sends you back to get notified of the rejection
    15.         ' or any option change.
    16.       End Sub

    and Point #7 becomes just this (as in the Module basSafeCtl):

    VB Code:
    1. ' In some Public Module
    2. Option Explicit
    3.  
    4. Public Const INTERFACESAFE_FOR_UNTRUSTED_CALLER = &H1
    5. Public Const INTERFACESAFE_FOR_UNTRUSTED_DATA = &H2

    So, this makes life easier.. hehe..

    HTH
    Neo
    ---
    I just thought i could edit my post with some helpful documentation and some typos.. hehe..
    Last edited by CodeBlock; May 12th, 2005 at 11:27 AM. Reason: More Documentation and edited typos - CodeBlock

  12. #12

    Thread Starter
    Banned ThaRubby's Avatar
    Join Date
    Apr 2005
    Location
    127.0.0.1
    Posts
    356

    Re: Active X

    **Blink** Heh thanks ill try all of that when i get home ...I read through it and it seemed like a good step by step tutty. I agree that should go in code bank

  13. #13
    PowerPoster Dave Sell's Avatar
    Join Date
    Mar 2004
    Location
    /dev/null
    Posts
    2,961

    Re: Active X

    Thanks for that tip. I will have to try that out.
    Nobody knows what software they want until after you've delivered what they originally asked for.

    Don't solve problems which don't exist.

    "If I had eight hours to cut down a tree, I'd spend six hours sharpening my axe." --- Abraham Lincoln (1809-1865)

    2 idiots don't make a genius.

  14. #14
    Ex-Super Mod RobDog888's Avatar
    Join Date
    Apr 2001
    Location
    LA, Calif. Raiders #1 AKA:Gangsta Yoda™
    Posts
    60,709

    Re: Active X

    Very nice Tutorial CodeBlock. You should definately CodeBank it
    VB/Office Guru™ (AKA: Gangsta Yoda®)
    I dont answer coding questions via PM. Please post a thread in the appropriate forum.

    Microsoft MVP 2006-2011
    Office Development FAQ (C#, VB.NET, VB 6, VBA)
    Senior Jedi Software Engineer MCP (VB 6 & .NET), BSEE, CET
    If a post has helped you then Please Rate it!
    Reps & Rating PostsVS.NET on Vista Multiple .NET Framework Versions Office Primary Interop AssembliesVB/Office Guru™ Word SpellChecker™.NETVB/Office Guru™ Word SpellChecker™ VB6VB.NET Attributes Ex.Outlook Global Address ListAPI Viewer utility.NET API Viewer Utility
    System: Intel i7 6850K, Geforce GTX1060, Samsung M.2 1 TB & SATA 500 GB, 32 GBs DDR4 3300 Quad Channel RAM, 2 Viewsonic 24" LCDs, Windows 10, Office 2016, VS 2019, VB6 SP6

  15. #15
    Lively Member CodeBlock's Avatar
    Join Date
    May 2005
    Location
    The_Universe.Milky_Way. Solar_System.Inner_Ring. The_Earth.Asia. India.TN. Chennai. Home_Sweet_Home
    Posts
    85

    Resolved Codebank: Ok Done!

    OK,

    Thanks for all those who appreciated my code.

    I have a prepared an article on this and posted it in the CodeBank: VB - ActiveX Tutorial: Run Web Based Controls w/o changing IE Settings.

    Thanks & Regards
    Neo
    Last edited by CodeBlock; May 13th, 2005 at 03:53 AM.

  16. #16
    New Member
    Join Date
    Sep 2006
    Posts
    1

    Unhappy Re: Active X

    Here is an easier approach.

    1- Create a module file and call it objsafe

    2- Copy and paste the following code to the module

    Imports System.Runtime.InteropServices

    <ComImport()> _

    <Guid("CB5BDC81-93C1-11CF-8F20-00805F2CD064")> _

    <InterfaceType(ComInterfaceType.InterfaceIsIUnknown)> _

    Public Interface IObjectSafety

    Function GetInterfaceSafetyOptions(ByRef iid As Guid, ByRef pdwSupportedOptions As Integer, ByRef pdwEnabledOptions As Integer) As Integer

    Function SetInterfaceSafetyOptions(ByRef iid As Guid, ByVal dwOptionSetMask As Integer, ByVal dwEnabledOptions As Integer) As Integer

    End Interface



    3- Now make your class inherits the interface as follows:

    Public Class MyClass

    Implements IObjectSafety



    and also add the folloiwng definitions inside your class:

    ' Constants for implementation of the IObjectSafety interface.

    Private Const INTERFACESAFE_FOR_UNTRUSTED_CALLER As Integer = &H1

    Private Const INTERFACESAFE_FOR_UNTRUSTED_DATA As Integer = &H2



    4- Implement the two interface methods as follows:

    Public Function GetInterfaceSafetyOptions(ByRef iid As Guid, ByRef pdwSupportedOptions As Integer, ByRef pdwEnabledOptions As Integer) As Integer Implements IObjectSafety.GetInterfaceSafetyOptions

    pdwSupportedOptions = INTERFACESAFE_FOR_UNTRUSTED_CALLER Or INTERFACESAFE_FOR_UNTRUSTED_DATA

    pdwEnabledOptions = INTERFACESAFE_FOR_UNTRUSTED_CALLER Or INTERFACESAFE_FOR_UNTRUSTED_DATA

    Return 0

    End Function



    Public Function SetInterfaceSafetyOptions(ByRef iid As Guid, ByVal dwOptionSetMask As Integer, ByVal dwEnabledOptions As Integer) As Integer Implements IObjectSafety.SetInterfaceSafetyOptions

    Return 0

    End Function



    Now your COM object is safe for scripting and initializing.

    FerasA
    Last edited by FerasA; Sep 12th, 2006 at 07:52 AM.

  17. #17
    New Member
    Join Date
    Feb 2010
    Posts
    4

    Re: Active X

    I hope someone can advise me here, I tried implementing IObjectSafe: here's my code:
    ctl:
    Option Explicit
    Public Const INTERFACESAFE_FOR_UNTRUSTED_CALLER = &H1
    Public Const INTERFACESAFE_FOR_UNTRUSTED_DATA = &H2

    Public m_fSafeForScripting As Boolean
    Public m_fSafeForInitializing As Boolean

    Sub Main()
    m_fSafeForScripting = True
    m_fSafeForInitializing = True
    End Sub

    ctl
    Option Explicit
    Implements IObjectSafety

    Private Sub IObjectSafety_GetInterfaceSafetyOptions(ByVal riid As _
    Long, pdwSupportedOptions As Long, pdwEnabledOptions As Long)
    pdwSupportedOptions = INTERFACESAFE_FOR_UNTRUSTED_CALLER Or _
    INTERFACESAFE_FOR_UNTRUSTED_DATA
    pdwEnabledOptions = pdwSupportedOptions
    Exit Sub
    End Sub

    Private Sub IObjectSafety_SetInterfaceSafetyOptions(ByVal riid As _
    Long, ByVal dwOptionsSetMask As Long, ByVal dwEnabledOptions As Long)
    End Sub
    HTML:
    <OBJECT ID="UserControl1" CLASSID="CLSID:AF8E2F9C-A1E0-4FEC-A74E-9145026D685C" CODEBASE="IObjSafety.CAB#version=1,0,0,0"></OBJECT>

    My Problems are:
    1) I created a button in the control, and tried creating a Click function for that in HTML, but it's not working.
    2) used this to skip the first problem temporarily:
    <OBJECT ID="UserControl1" CLASSID="CLSID:AF8E2F9C-A1E0-4FEC-A74E-9145026D685C" CODEBASE="IObjSafety.CAB#version=1,0,0,0" onmouseover="printIfIE()"></OBJECT>

    But on mouseover, the activeX prompt is still appearing, the control is also Safe for scripting and Initialization when I packaged it to .CAB

    Help please

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width