RE: Subclass windows

Prasad:
Good point!! If Forte went to fully dynamic binding, the problem would likely
go away. The core problem appears to be that non-window classes are bound at
'compile' time. Window classes are bound at both initial code creation and
compile time. Given the practical problems around windows, look and feel,
realestate management, this may be the only practical solution. The real
problem is, no matter what you do, if you have to change a parent window you
will be experiencing some considerable pain.
bill
From: Prasad Muppirala
Sent: Friday, February 21, 1997 12:50 PM
To: 'forte-users'; '[email protected]'; Bill Gonch
Subject: RE: Subclass windows
This is true to a certain extent though the problem we are concerned
does'nt go away. If we any time inherit from a window that has
widgets, we have to name each and every widget, which will not give us
the
warning related to the tag errors......
This way atleast certain forte executables run fine. But on the other
hand the window inheritance hierarchy has had problems, which have been
brought to the notice of Forte.....
The work around that I used to use:
If we don't have many widget changes done in the subclass, and you are
willing to redo the changes pertinent to the subclass, then what can be
done is make the changes to the widgets in the parent class,
Break the inheritance relationship for the subclass, for example let
this subclass inherit from UserWindow,
then go back and reestablish the parent child relationship. This way
all the changes made to the parent class get reflected. But now the
work is to make those changes explicitly in the subclass that we lost,
because of breaking the relationship. Pex out and pex in seems to be
also an alternative.
Prasad Muppirala
Consultant
Forte National Practice
Born Information Services Group
(612)404-4300
From: Bill Gonch[SMTP:[email protected]]
Sent: Friday, February 21, 1997 1:36 AM
To: forte-users; [email protected]
Subject: RE: Subclass windows
Bottom line, and I think there is a technote on this. if you do not name
every
widget, sub classing windows is not a good idea. Most ofter, violations of
this rule result in a seg v, but they can produce other symptoms
ciao
bill
From: [email protected] on behalf of
[email protected]
Sent: Thursday, February 20, 1997 1:59 PM
To: [email protected]
Subject: Subclass windows
Re Corrado Tamietti's window subclassing problems:
STRANGE things can happen if you have not named ALL widgets in the
superclass window (including ALL TextGraphics, GridFields,
CompoundMenus, and all those other things that we usually leave unnamed
because we do not need to manipulate them). Apparantly the name is how
Forte decides whether the widget is inherited. Once we started naming
everything, our subclass windows started behaving MUCH better after
modification of the superclass.
You still lose your window titles when you insert a new class into the
hierarchy, though. This seems like a bug to me, but what do I know? On
the whole, the "PEX out, PEX back" suggestion sounds the best if it's
practical, but I STILL fear that if you do not name EVERY widget in the
superclass, you will be sorry.
Tom Wyant

Prasad:
Good point!! If Forte went to fully dynamic binding, the problem would likely
go away. The core problem appears to be that non-window classes are bound at
'compile' time. Window classes are bound at both initial code creation and
compile time. Given the practical problems around windows, look and feel,
realestate management, this may be the only practical solution. The real
problem is, no matter what you do, if you have to change a parent window you
will be experiencing some considerable pain.
bill
From: Prasad Muppirala
Sent: Friday, February 21, 1997 12:50 PM
To: 'forte-users'; '[email protected]'; Bill Gonch
Subject: RE: Subclass windows
This is true to a certain extent though the problem we are concerned
does'nt go away. If we any time inherit from a window that has
widgets, we have to name each and every widget, which will not give us
the
warning related to the tag errors......
This way atleast certain forte executables run fine. But on the other
hand the window inheritance hierarchy has had problems, which have been
brought to the notice of Forte.....
The work around that I used to use:
If we don't have many widget changes done in the subclass, and you are
willing to redo the changes pertinent to the subclass, then what can be
done is make the changes to the widgets in the parent class,
Break the inheritance relationship for the subclass, for example let
this subclass inherit from UserWindow,
then go back and reestablish the parent child relationship. This way
all the changes made to the parent class get reflected. But now the
work is to make those changes explicitly in the subclass that we lost,
because of breaking the relationship. Pex out and pex in seems to be
also an alternative.
Prasad Muppirala
Consultant
Forte National Practice
Born Information Services Group
(612)404-4300
From: Bill Gonch[SMTP:[email protected]]
Sent: Friday, February 21, 1997 1:36 AM
To: forte-users; [email protected]
Subject: RE: Subclass windows
Bottom line, and I think there is a technote on this. if you do not name
every
widget, sub classing windows is not a good idea. Most ofter, violations of
this rule result in a seg v, but they can produce other symptoms
ciao
bill
From: [email protected] on behalf of
[email protected]
Sent: Thursday, February 20, 1997 1:59 PM
To: [email protected]
Subject: Subclass windows
Re Corrado Tamietti's window subclassing problems:
STRANGE things can happen if you have not named ALL widgets in the
superclass window (including ALL TextGraphics, GridFields,
CompoundMenus, and all those other things that we usually leave unnamed
because we do not need to manipulate them). Apparantly the name is how
Forte decides whether the widget is inherited. Once we started naming
everything, our subclass windows started behaving MUCH better after
modification of the superclass.
You still lose your window titles when you insert a new class into the
hierarchy, though. This seems like a bug to me, but what do I know? On
the whole, the "PEX out, PEX back" suggestion sounds the best if it's
practical, but I STILL fear that if you do not name EVERY widget in the
superclass, you will be sorry.
Tom Wyant

Similar Messages

  • Re: (forte-users) catching user inactivity and loggingoff

    My group is also has been requested to perform a similar task. We probably will not log the user out, but instead will throw up our Login window if the app has been idle for 15 minutes. The trick is figuring out how to determine "what is an activity?". We have a main menu window that fires off most other windows (usually with start task). So, we need to monitor usage for anything in that main menu or any task started from it. Would dragging a window be considered activity? Moving the mouse over a window, but not clicking?
    Steven Barnes
    "Fingerhut, Eric" <Eric.Fingerhuthbo.com> 07/21/00 08:24AM >>>Were looking to automatically log a user off that hasn't been 'active' on
    the system after some defined period of time (i.e., 15 minutes).
    We're also looking to implement a variation of the Window Manager pattern,
    and wondering if there's something in the pattern itself that would be
    useful for accomplishing the auto log-off (perhaps a window level event that
    means a user has done something, that we'd otherwise not be using).
    I appreciate any and all feedback to accomplish this.
    TIA,
    Eric

    Eric,
    We're looking to automatically log a user off that hasn't been 'active'on
    the system after some defined period of time (i.e., 15 minutes).
    We're also looking to implement a variation of the Window Managerpattern,
    and wondering if there's something in the pattern itself that would be
    useful for accomplishing the auto log-off (perhaps a window level eventthat
    means a user has done something, that we'd otherwise not be using).<snip!>
    If you're using a window manager, your windows are probably (hopefully!)
    all subclasses of the same superwindow. At least, they are for us.
    We're not logging people off, but we are doing things like lighting up a
    "save" button when the user has changed the window. For this we register
    events on self.Window.ChildAfterValueChange and
    self.Window.ChildAfterFirstKeystroke. You might also want an event on
    ChildClick. My bias is to ignore mouse movement events, since they might
    easily have nothing to do with your application (e.g. moving the mouse
    across your application's window to get from the Minesweeper window to the
    Solitare window).
    If you're using these events, you can write an event handler for your
    superclass window that fields the events you want, does anything it needs
    to do with them, then calls a method that does nothing. The subclass window
    can override this method to get the functionality it needs.
    Tom Wyant

  • Why does this nullpointer happen

    I am trying to create a JLabel which uses the background screenshot, and prints some text on top of it.
    I have run into a problem when I attempt to manually set the Font. I think I have narrowed the problem down to the getPreferredSize() method, and I think it is related to the font metrics class. But I cant figure out.
    Here is the test code (it doesn't have much applicability, but it illustrates the problem)
    If you remove the line: setupImage from the setFont() method, then everything works fine, but unfortunately, I need this to determine the size of my screen capture (like I mentioned before, this doesn't make much sense in my example, but for my application, it is required)
    import javax.swing.*;
    import java.awt.*;
    import java.awt.image.BufferedImage;
    public class LabelTest extends JLabel {
         public static void main(String[] args) {
              JFrame frame = new JFrame();
              LabelTest l = new LabelTest(new Point(100,100));
              l.setFont(new Font("Tahoma", Font.BOLD, 14));
              frame.add(l);
              frame.pack();
              frame.setVisible(true);
            private BufferedImage image;
              private Point point;
              public LabelTest(Point p) {
                   this.point = p;
                   setupImage();
              private void setupImage() {
                   try {
                        Robot r = new Robot();
                        Dimension d = getPreferredSize();
                        image = r.createScreenCapture(new Rectangle(point.x, point.y, d.width, d.height));
                   catch(Exception e){
                        e.printStackTrace();
              public void setFont(Font f) {
                   super.setFont(f);
                   setupImage(); //if you comment this out, everything works
              public void paint(Graphics g) {
                   Graphics2D g2 = (Graphics2D)g;
                   g2.drawImage(image,0,0,this);
                   //draw the labels
                   Font f = getFont();
                   if(f != null) {
                        FontMetrics fm = getFontMetrics(getFont());
                        g2.setColor(getForeground());
                        g2.drawString("Test", 15, fm.getHeight()/2 - fm.getMaxDescent());
              public Dimension getPreferredSize() {
                   Font f = getFont();
                   if(f != null) {
                        FontMetrics fm = getFontMetrics(getFont());
                        System.err.println(fm.getHeight());
                        int hieght = fm.getHeight();
                        int width = 0;
                        width = fm.stringWidth("test");
                        return new Dimension(width + 15, hieght + fm.getHeight()*2);
                   else {
                        return new Dimension(200, 200);
              public Dimension getMinimumSize() { return new Dimension(200, 200); }
         }

    2 Questions for you guys:
    1) Camickr: In my code, I wasnt recreating the background image everytime, I was simply drawing it everytime. However, now that I think about it, it would be nice to figure out if the background has changed, in order to take a new picture of it.
    2) So I mentioned earlier that I was having trouble with resizing of the label. I was able to narrow it down to a test case, however, I don't know why this occurs.
    In the code below, I extend the Window class, and add the JLabel to it. However, you will be able to see that when I change the Font, the resizing doesn't affect the containing Window (You can test this by clicking on the window, you will see that the width is calculated using the original font, before the setFont call).
    The wierd thing, is that if I dont subclass Window, and just use a Window instance in my main method, everything works fine. Now I could do this, but I would like to know why this resizing problem is happening.
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.MouseListener;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.awt.image.BufferedImage;
    public class LabelTest extends Window{
         public static void main(String[] args) {
              JFrame frame = new JFrame();
              frame.setPreferredSize(new Dimension(300,400));
              LabelTest l = new LabelTest(frame, new Point(500,500), "My long string 222333111444555");
              l.setFont(new Font("Tahoma", Font.BOLD, 14));
              frame.pack();
              frame.setVisible(true);
              l.setVisible(true);
         private BubbleLabel bubble;
         public LabelTest(JFrame owner, Point startingPoint, String text) {
              super(owner);
              setupBubble(startingPoint, text);
         public LabelTest(JDialog owner, Point startingPoint, String text) {
              super(owner);
              setupBubble(startingPoint, text);
         private void setupBubble(Point startingPoint, String text) {
              bubble = new BubbleLabel(startingPoint, text);
              this.setLocation(startingPoint);
              this.setLayout(new BorderLayout());
              this.add(bubble, BorderLayout.CENTER);
              this.pack();
         public void setFont(Font f) { bubble.setFont(f); }
         public class BubbleLabel extends JLabel {
              private String myText;
            private BufferedImage image;
              private Point point;
              public BubbleLabel(Point p, String text) {
                   this.point = p;
                   this.myText = text;
                   setupImage();
                   this.addMouseListener(exitListener);
              private void setupImage() {
                   if(point ==  null) {
                        return;
                   try {
                        Robot r = new Robot();
                        Dimension d = getPreferredSize();
                        image = r.createScreenCapture(new Rectangle(point.x, point.y, d.width, d.height));
                   catch(Exception e){
                        e.printStackTrace();
              public void setFont(Font f) {
                   super.setFont(f);
                   setupImage();
              public void paint(Graphics g) {
                   Graphics2D g2 = (Graphics2D)g;
                   g2.drawImage(image,0,0,this);
                   //draw the labels
                   Font f = getFont();
                   if(f != null) {
                        FontMetrics fm = getFontMetrics(getFont());
                        g2.setColor(Color.GREEN);
                        g2.drawString(myText, 15, 25 + fm.getHeight()/2 - fm.getMaxDescent());
              public Dimension getPreferredSize() {
                   Font f = getFont();
                   if(f != null) {
                        FontMetrics fm = getFontMetrics(getFont());
                        int hieght = fm.getHeight();
                        int width = 0;
                        width = fm.stringWidth(myText);
                        System.err.println(width + 15);
                        return new Dimension(width + 15, hieght + fm.getHeight()*2);
                   else {
                        return new Dimension(200, 200);
              public Dimension getMinimumSize() { return new Dimension(200, 200); }
              private MouseListener exitListener = new MouseAdapter() {
                   public void mouseClicked(MouseEvent e) {
                        System.err.println(BubbleLabel.this.getBounds());
    }

  • Problem going from d2 to e2

    To all -
    This is an FYI. We just moved from d2 to e2 at the urging of the support
    center as we had experienced several corruptions of workspaces with d2
    during updates. E2 has solved this nicely but we have just suffered from
    a new problem.
    We are using window inheritance including inheritance of things like
    standard buttons and scroll bars. Yesterday, I made a change to one
    superclass to rearrange the order of buttons in a grid. After I did this,
    16 of 18 subclass windows were not longer accessible. We could not
    compile them, export them, or every go into the window workshop! We
    kept getting FTEXEC errors in a qqds.dll module. And of course this was
    during testing of the application prior to deployment for a trade
    show on Wednesday! Panic city...
    The support center explained the likely problem as one of duplicate
    tags. Apparently, we had in d2 created window widgets (specifically
    grid fields) without giving them names. We had done this variably
    on the superclass and subclass. When Forte e2 tried to merge the
    super and subclasses, it found a conflict between the tags (apparently
    these are system assigned numbers). It is supposed to just give a
    warning about these problems but in this case, it completely crashed.
    The solution was not completely terrible but took several hours. We
    first fixed the superclass to make sure all grids were names. Then
    we dragged/dropped the subclass windows into a new project. There we
    could access them and give all grids names. Then we deleted the originals
    and dragged/dropped the copies back in. Voila! Fixed after about 3
    hours and a bit of sweating.
    The moral of this story is to name all widgets including grids and to
    tread lightly when changing widgets in superclass windows.
    Jerry Fatcheric
    Relational Options, Inc.
    Florham Park, New Jersey
    201-301-0200
    201-301-00377 (FAX)
    [email protected]

    We've been talking about this issue for a while now. Take a look at this post:
    Temperance Harkins, "are you an Audible.com user?" #16, 11:20am Oct 26, 2005 CDT

  • WebView won't roll over

    I have a WebView in a subclassed window and view. I notice that when I move my cursor over links in my WebView, it does not change the cursor to a hand or perform rollover actions where it should. Using a delegate method for mouseDidMoveOverElement and rolling the mouse over links doesn't trigger a response either. Clicking on links work just fine, as does right-clicking to bring up a contextual menu.
    I suspect that a responder is getting in the way or another class is intercepting the mouse events. What are the requirements for a WebView to receive the mouse events it isn't receiving? What generates these events? (hitTest, mouseMoved ?) Thanks.

    suggest to call sprint to get updated information about your account

  • Java.lang.UnsatisfiedLinkError: resizeD3DCanvas

    Hi,
    I write a mesh viewing software in which TriangleArray is used to represent
    triangle polygons.
    A subclass of Canvas3D is contained inside a subclass of JFrame.
    After I load and show a polygon mesh, I move the JFrame subclass Window, then the following messages are shown, and the software freezes.
    This happens on Win2K professional and Win XP Professional, SP2.
    I tried J3D.dll for OpenGL and DirextX, but the results are the same.
    I Googled for a solution to this, but found no clue.
    Incidentally, when I make an installer using ZeroG's InstallAnywhere for this
    software, install it and run the software, this does not happen.
    Any hints and clues are welcome.
    Best Regards,
    Chusai_Shibue
    java.lang.UnsatisfiedLinkError: resizeD3DCanvas
    at javax.media.j3d.Canvas3D.resizeD3DCanvas(Native Method)
    at javax.media.j3d.Canvas3D.d3dResize(Canvas3D.java:3588)
    at javax.media.j3d.Renderer.doWork(Renderer.java:451)
    at javax.media.j3d.J3dThread.run(J3dThread.java:250)

    Hi, Ifadolai
    Thank you for your precious advice.
    I will post this to that forum.
    Best regards,
    Chusai_Shibue

  • SetDefaultCloseOperation problems

    Hi.
    I'm writing a Swing application that has one parent JFrame subclass that, after a JButton press, opens a new JFrame subclass window. I have used setDefaultCloseOperation to HIDE_ON_CLOSE() for the child JFrame, but for some reason, whenever I close this window, the entire application exits.
    Can anyone help me out with an explanation?

    Does this do what you want?import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    public class Test extends JFrame {
        public Test (boolean main) {
            setTitle (main ? "parent" : "child");
            setDefaultCloseOperation (main ? EXIT_ON_CLOSE : HIDE_ON_CLOSE);
            JComponent component;
            if (main) {
                component = new JButton (new AbstractAction ("Open new frame") {
                    public void actionPerformed (ActionEvent event) {
                        new Test (false);
            } else {
                component = new JLabel ("I'm a new frame!");
            getContentPane ().setLayout (new GridBagLayout ());
            getContentPane ().add (component, new GridBagConstraints ());
            pack ();
            setLocationRelativeTo (null);
            setVisible (true);
        public static void main (String[] parameters) {
            new Test (true);
    }Kind regards,
      Levi

  • Closing previous windows problem

    i have one desktop gui application..when I compile my application,then i can see searchform1 form,then when i click DELETE button in searchform1.form then I do see Delete.form and i can the remove the file from the list that i selected.The problem is when i click delete button i can see deleteform again BUT I could not close the previous windows like searchform1.java window and previous delete.java window(or form) which I have seen before .I wanna close previous window when i click delete.form..I meant i wanna close searchform1.form or the previous windows (forms) when i see delete.form or when I click delete button. I do believe that because of that problem , I had seen " Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space " after I saw a couple of forms.
    Thank you so much for your helps..

    altayli wrote:
    This is my codeThat is not an SSCCE. Please read [this link|http://sscce.org].
    But judging from that snippet, you're creating a new "noresult" (which I assume is a JWindow or JFrame?), then immediately disposing of it, without even displaying it. This is NOT closing any previously-opened noresult instances, which I am starting to think is what you want to do. You need a reference to a previous noresult if you want to close it.
    Also, you shouldn't be calling DesktopApplication2.main(), this is very bad practice. You likely want to call DesktopApplication2's constructor if it is a JFrame/JDialog subclass, and setVisible(true) the result; if it's not a JFrame or JDialog, you want to create whatever main window it does create, and display that.
    What if DesktopApplication2 calls System.exit() somewhere? Your application would go down with it.

  • NSView subclass and mouse clicks

    I wrote a relatively simple program. It's got a single visual component on the window, an NSView subclass with drawing delegated out to another class called Arrow. Anyway, it uses a timer to trigger calls to drawRect which in turn "animates" a layer. I have a 100x100 layer and a velocity & position which get updated each time through depending on how much "real" time has passed. As the layer bounces around the screen, the animation seems smooth and everything looks good. If I start clicking in the window, however, things get wonky. The animation stutters (probably expected) and the position sometimes gets set back to the origin (0,0, bottom left corner of screen). I wonder if there's something I can do to stop mouse clicks from affecting the view, I have no set up anything to use the mouse clicks AT ALL so I don't really know how they can affect anything in the code I wrote. If this isn't enough info to answer the question, I'll post the xcode project.

    The end result is going to be a very simple 2d game with maybe 8-10 things on the screen moving around at any one time. My next step is to try out openGL but using these CALayers seemed a lot simpler. However, since you say any event will block, I expect that will happen to opengl as well. I'll dig some more in the examples. It seems I followed the pattern from the crash landing demo (although I'm doing it on the mac itself, not iphone/simulator) to set up the rendering.
    When you suggest using core animation, are you talking about just telling it the start/end position and the speed, and letting it handle everything in between? I don't think that will work for my case because eventually I will have to handle mouse/keyboard events to alter the movement in real-time. Am I missing something?
    Thanks again for your help.

  • How can I have multiple WINDOWS (NOT tabs) with INDEPENDENT content?

    How can I have multiple '''windows''' (''not ''tabs) with '''independent''' content?
    I used to be able to open separate windows with Firefox, and the content could be completely different in each window. No matter what I did in any window, no OTHER window open at the time, nor any of the content therein, was affected. This is no longer the case and it is extremely frustrating for me.
    I do ''not ''like tabs and do not use them. I prefer multiple windows plus I am so used to using them, for so many years now! But with v9.0.1 I suddenly can no longer do what I've always done with my browser without this aggravating problem constantly reminding me that I can't have what I want in firefox anymore.
    Or can I? Does anyone have a solution I don't realize exists?
    Thanks,
    Sowelu

    AppleScriptObjC can use pretty much everything in the Cocoa API, so yes, it is possible.
    Note that a view is not the same as a window, and a window can have multiple views. There are also many ways to implement "tabs";  take a look at some of Apple's applications - they use various mixtures of toolbars, checkboxes, and radio buttons, for example.  An application such as this will be a lot more involved than what you have done so far though, using custom classes and subclassing existing ones, so be prepared to do a lot of reading and researching.

  • How can I implement multiple windows/tabs in my Main-Menu?

    I don't really know how to explain it. As an example, Skype has roughly 20 windows bundled with it, that are switched to when you click things like "Skype-Home" and "Profile". The layout changes too drastically to change the way it looks through just code, and it's not a new window being opened, it stays in the same window, the same main-window. I was wondering if this is possible through Cocoa-Applescript, and if so, what are the necessary steps to achieve this.
    Taking it one step further, and if the above is possible, how could I implement a "tab" system in the application? The image below is an example of what I mean.

    AppleScriptObjC can use pretty much everything in the Cocoa API, so yes, it is possible.
    Note that a view is not the same as a window, and a window can have multiple views. There are also many ways to implement "tabs";  take a look at some of Apple's applications - they use various mixtures of toolbars, checkboxes, and radio buttons, for example.  An application such as this will be a lot more involved than what you have done so far though, using custom classes and subclassing existing ones, so be prepared to do a lot of reading and researching.

  • How to show a background image in the Forms 6i MDI window?

    Hello,
    We are using Oracle Forms 6i Release 2 Patch 18 on Windows XP in client/server environment (not web server).
    Is there any way to show a background image in the MDI root window without using DLL injection to subclass the MDI root window procedure.
    Kurt

    Please try this 
    Public Function Decompress(ByVal arr As Byte()) As Byte()
            Dim s As Byte()
            Dim notCompressed As Boolean
            notCompressed = False
            Dim MS As System.IO.MemoryStream
            MS = New System.IO.MemoryStream()
            MS.Write(arr, 0, arr.Length)
            MS.Position = 0
            Dim stream As System.IO.Compression.GZipStream
            stream = New System.IO.Compression.GZipStream(MS, System.IO.Compression.CompressionMode.Decompress)
            Dim temp As System.IO.MemoryStream
            temp = New System.IO.MemoryStream()
            Dim buffer As Byte() = New Byte(4096) {}
            While (True)
                Try
                    Dim read As Integer
                    read = stream.Read(buffer, 0, buffer.Length)
                    If (read <= 0) Then
                        Exit While
                    Else
                        temp.Write(buffer, 0, buffer.Length)
                    End If
                Catch ex As Exception
                    notCompressed = True
                    Exit While
                End Try
            End While
            If (notCompressed = True) Then
                stream.Close()
                Return temp.ToArray()
            Else
                Return temp.ToArray()
            End If
        End Function
    Thanks & Regards Manoj

  • I have reinstalled with Canons driver kit 2005b för Windows 7 64 bit. All works fine until the scann

    Hi!
    After Windows update in april 2014 I cant any longer use the scanning funktion via network from Canon MF8330 Cdn multifunktion printer/fax/scanner machine! It worked fine Before the april Windows update installation.
    I have reinstalled with Canons driver kit 2005b för Windows 7 64 bit. All works fine until the scanner installation ends, then system report that it cannot install the scanner and I have to try installing again. I have done that now several times but it helps not. I Think it has something to do with that the Canon scanner drivers isn´t 64 bit files, or the problem is that windows update has replaces saome dll file to a never version that not work with Canon drivers. 
    I have seen that there is a service pack 1 from Canon för Windows 8 and 8,1, can I use that service pack to get a never dll file for scanner or work this only for windows 8 version.
    Have someone a solution to this! I have contacted the Canon support already and they say that its a Microsoft problem!
    Very thanful for help in this case!
    Greetings
    Sixten
    Hi!
    I am installing the drivers from Canons site. It is the newest version 2005b for Windows 7 64 bit to MF8330Cdn Canon multifunction printer/fax/scanner. Installation goes well for the printer and fax but not for scanner drivers. The error message is Could not install the scanner. In device manager is there then a unknown device under Image devices. In Device Manager I try to update drivers, but it does not help either, error message is access denied. I am logged on the system with administrator account, therfore it is strange that I get the error message access denied.
    I tried earlier to do system restore back to previous time, but it did not work, error was that the system could not do the system restore because of access rights.
    is there anything else I could do.
    Here is the MF36SCN.inf file for scanner installation from Canon, if it can help You to go further with the problem. Is there something strange in the inf file that does not work in Windows 7 64 bit Windows, something shows that ther is also same 32 bits parts in the inf file.
    Greetings
    Sixten
    ; MF36SCN.INF  -- Windows Setup File for the MF8300 Series (Windows XP,Vista(64-bit))
    ; Copyright CANON INC. 2009 All Rights Reserved
    ; InfID: {BA7E017E-FA42-4831-A084-AA9E671325EE}
    ; Last Modified: 11-Jun-2009
    [Version]
    Signature="$Windows NT$"
    class="Image"
    ClassGUID={6bdd1fc6-810f-11d0-bec7-08002be2092f}
    ;  The above GUID is the class GUID for all scanners and MUST NOT change
    Provider=%Msft%
    CatalogFile.NTamd64=MF36SCN.CAT
    DriverVer=06/17/2009, 11.3.0.0
    [DestinationDirs]
    DefaultDestDir=11
    CNCDsFiles=10,"twain_32\"%CNCRFN%
    CNCMediaFiles=10,media
    ColorFiles.NT=11,spool\drivers\Color
    [ControlFlags]
    ;ExcludeFromSelect=*
    [Manufacturer]
    %Mfg%=Models,NTamd64.5.1,NTamd64.6.0
    [Models.NTamd64.5.1]
    %LPTENUM\CNC.DeviceDesc%=CNCInstall_XP,USB\VID_04A9&PID_2708&MI_00
    %LPTENUM\CNC.DeviceDesc%=CNCInstallNet_XP,CANON_MFNP&%CNCRFN%
    [Models.NTamd64.6.0]
    %LPTENUM\CNC.DeviceDesc%=CNCInstall_VISTA,USB\VID_04A9&PID_2708&MI_00
    %LPTENUM\CNC.DeviceDesc%=CNCInstallNet_VISTA,CANON_MFNP&%CNCRFN%
    ;........................................ WinXP(64-bit) section
    [CNCInstall_XP.NTamd64]
    Include=sti.inf
    Needs=STI.USBSection
    SubClass=StillImage
    DeviceType=1
    DeviceSubType=0x1
    DeviceData=CNCDeviceData
    AddReg=CNCAddreg,CNCAddreg.USB,CNCUSDAddreg_XP
    CopyFiles=WiaFiles,CNCDsFiles,ColorFiles.NT,MPScanLLD,CNCMediaFiles
    ICMProfiles="sRGB Color Space Profile.icm"
    ; used for push button event
    Capabilities=0x11
    Events=PushButton.Events
    DriverVer=06/17/2009, 11.3.0.0
    FriendlyName=%CNC.FriendlyName%
    [CNCInstall_XP.NTamd64.Services]
    Include=sti.inf
    Needs=STI.USBSection.Services
    [CNCInstall_XP.NTamd64.CoInstallers]
    CopyFiles = ScanCoInstaller_CopyFiles_x64
    AddReg    = ScanCoInstaller_AddReg_x64
    [ScanCoInstaller_CopyFiles_x64]
    CNCLSO36b.dll
    [ScanCoInstaller_AddReg_x64]
    HKR,,CoInstallers32,0x00010000,"CNCLSO36b.dll,Coinstaller_EntryPoint"
    ;........................................ WinVista(64-bit) section
    [CNCInstall_VISTA.NTamd64]
    Include=sti.inf
    Needs=STI.USBSection
    SubClass=StillImage
    DeviceType=1
    DeviceSubType=0x1
    DeviceData=CNCDeviceData_VISTA
    AddReg=CNCAddreg,CNCAddreg.USB,CNCUSDAddreg_XP,CNCUSDAddreg_VISTA
    CopyFiles=Wia2Files,CNCDsFiles,ColorFiles.NT,MPScanLLD,CNCMediaFiles
    ICMProfiles="sRGB Color Space Profile.icm"
    ; used for push button event
    Capabilities=0x11
    Events=PushButton.Events
    DriverVer=06/17/2009, 11.3.0.0
    FriendlyName=%CNC.FriendlyName%
    [CNCInstall_VISTA.NTamd64.Services]
    Include=sti.inf
    Needs=STI.USBSection.Services
    [CNCInstall_VISTA.NTamd64.CoInstallers]
    CopyFiles = ScanCoInstaller_CopyFiles_x64
    AddReg    = ScanCoInstaller_AddReg_x64
    [ScanCoInstaller_CopyFiles_x64]
    CNCLSO36b.dll
    [ScanCoInstaller_AddReg_x64]
    HKR,,CoInstallers32,0x00010000,"CNCLSO36b.dll,Coinstaller_EntryPoint"
    ;........................................ WinXP(64-bit) section(Network)
    [CNCInstallNet_XP.NTamd64]
    Include=sti.inf
    Needs=STI.SerialSection
    SubClass=StillImage
    DeviceType=1
    DeviceSubType=0x1
    DeviceData=CNCDeviceData
    AddReg=CNCAddreg,CNCUSDAddreg_XP
    CopyFiles=WiaFiles,CNCDsFiles,ColorFiles.NT,MPScanLLD,CNCMediaFiles
    ICMProfiles="sRGB Color Space Profile.icm"
    ; used for push button event
    Capabilities=0x11
    Events=PushButton.Events
    DriverVer=06/17/2009, 11.3.0.0
    FriendlyName=%CNC.FriendlyName%
    [CNCInstallNet_XP.NTamd64.Services]
    Include=sti.inf
    Needs=STI.SerialSection.Services
    [CNCInstallNet_XP.NTamd64.CoInstallers]
    CopyFiles = ScanCoInstaller_CopyFiles_x64
    AddReg    = ScanCoInstaller_AddReg_x64
    [ScanCoInstaller_CopyFiles_x64]
    CNCLSO36b.dll
    [ScanCoInstaller_AddReg_x64]
    HKR,,CoInstallers32,0x00010000,"CNCLSO36b.dll,Coinstaller_EntryPoint"
    ;........................................ WinVista(64-bit) section(Network)
    [CNCInstallNet_VISTA.NTamd64]
    Include=sti.inf
    Needs=STI.SerialSection
    SubClass=StillImage
    DeviceType=1
    DeviceSubType=0x1
    DeviceData=CNCDeviceData_VISTA
    AddReg=CNCAddreg,CNCUSDAddreg_XP,CNCUSDAddreg_VISTA
    CopyFiles=Wia2Files,CNCDsFiles,ColorFiles.NT,MPScanLLD,CNCMediaFiles
    ICMProfiles="sRGB Color Space Profile.icm"
    ; used for push button event
    Capabilities=0x11
    Events=PushButton.Events
    DriverVer=06/17/2009, 11.3.0.0
    FriendlyName=%CNC.FriendlyName%
    [CNCInstallNet_VISTA.NTamd64.Services]
    Include=sti.inf
    Needs=STI.SerialSection.Services
    [CNCInstallNet_VISTA.NTamd64.CoInstallers]
    CopyFiles = ScanCoInstaller_CopyFiles_x64
    AddReg    = ScanCoInstaller_AddReg_x64
    [ScanCoInstaller_CopyFiles_x64]
    CNCLSO36b.dll
    [ScanCoInstaller_AddReg_x64]
    HKR,,CoInstallers32,0x00010000,"CNCLSO36b.dll,Coinstaller_EntryPoint"
    ;.......................................... Common Section
    [PushButton.Events]
    PushButtonPushed1=%PushButtonPushed1%,{66F2A894-EC9B-430c-9D52-E8719D200DAC},%ButtonApp%
    PushButtonPushed2=%PushButtonPushed2%,{506AC8D1-E030-4f05-8F8A-4476153E2D6C},%ButtonApp%
    PushButtonPushed3=%PushButtonPushed3%,{9813E8A6-3652-4768-9AD1-C89E9B5CA956},%ButtonApp%
    PushButtonPushed4=%PushButtonPushed4%,{03B58D10-0245-4859-A489-D695C7729FB3},%ButtonApp%
    [ColorFiles.NT]
    CNZ005.ICC
    CNFR08.ICC
    [CNCDeviceData]
    TwainDS=%CNC.TwainDS%
    SpecialInfo=%CNC.SPInfo%
    DeviceKey=%CNCRFN%
    InstallDirectory="\TWAIN_32\%CNCRFN%\"
    KeyNamePath=%KEYNAME%
    DefaultKeyNamePath=%DEFAULTKEYNAME%
    [CNCDeviceData_VISTA]
    TwainDS=%CNC.TwainDS%
    SpecialInfo=%CNC.SPInfo%
    DeviceKey=%CNCRFN%
    InstallDirectory="\TWAIN_32\%CNCRFN%\"
    KeyNamePath=%KEYNAME%
    DefaultKeyNamePath=%DEFAULTKEYNAME%
    UI Class ID={DF89C549-D67D-4fb0-A575-547073BFAB11}
    ;The above GUID reused from sample MUST change for each Model.
    [CNCAddreg]
    HKLM,"%SGDKEY%","DeviceName",,%CNC.MDL%
    HKLM,"%SGDKEY%","SeriesName",,%CNC.SRS%
    HKLM,"%SGDKEY%","Manufacturer",,"Canon Inc."
    HKLM,"%SGDKEY%","ProductFamily",,"TWAIN Scanners"
    HKLM,"%SGDKEY%","ProductName",,%CNC.MDL%
    HKLM,"%SGDKEY%","InstallDirectory",,"%10%\TWAIN_32\%CNCRFN%\"
    HKLM,"%SGDKEY%","DeviceDriver",,"SCANINTF.DLL"
    HKLM,"%SGDKEY%","ProductId",,"MF8300          "
    HKLM,"%SGDKEY%","DataSourcePath",,"%10%\TWAIN_32\%CNCRFN%\cisds.ds"
    HKLM,"%SGDKEY%","TextEnhance",0x00010001,0
    HKLM,"%SGDKEY%","HiDefinitionMode",0x00010001,0
    HKLM,"%SGDKEY%","AutoPreview",0x00010001,0
    HKLM,"%SGDKEY%","AutoClose",0x00010001,0
    HKLM,"%SGDKEY%","SavePreview",0x00010001,1
    HKLM,"%SGDKEY%","DriverDate",,"06 2009"
    HKLM,"%SGDKEY%","DriverVersion",,"11.3.0.0.mf09"
    HKLM,"%SGDKEY%","ColorGear",,%CNC.ColorGear%
    HKLM,"%SGDKEY%","ColorMatch Platen",,"CNFR08.ICC"
    HKLM,"%SGDKEY%","SGIPPDEF",,"CNCFR08.DAT"
    HKLM,"%SGDKEY%","Descreen",0x00010001,0
    HKLM,"%SGDKEY%","Unsharp",0x00010001,3
    HKLM,"%SGDKEY%","MultiLimitThreshold",0x00010001,180
    HKLM,"%SGDKEY%","MultiJackUp",0x00010001,9
    HKLM,"%SGDKEY%","MultiTrimJackUp",0x00010001,20
    HKLM,"%SGDKEY%","CardPhotoDistThr",0x00010001,30
    HKLM,"%SGDKEY%","PhotoTrimThr",0x00010001,210
    HKLM,"%SGDKEY%","PhotoRThr",0x00010001,210
    HKLM,"%SGDKEY%","PhotoGThr",0x00010001,210
    HKLM,"%SGDKEY%","PhotoBThr",0x00010001,210
    HKLM,"%SGDKEY%","CardTrimThr",0x00010001,30
    HKLM,"%SGDKEY%","CardRThr",0x00010001,30
    HKLM,"%SGDKEY%","CardGThr",0x00010001,30
    HKLM,"%SGDKEY%","CardBThr",0x00010001,30
    HKLM,"%SGDKEY%","ParWhiteBlackEth",0x00010001,5
    HKLM,"%SGDKEY%","ParWhiteBlackEthDG",0x00010001,5
    HKLM,"%SGDKEY%","ParWhiteBlackSth",0x00010001,35
    HKLM,"%SGDKEY%","ParWhiteBlackVth",0x00010001,10
    HKLM,"%SGDKEY%","ParLabelingHth",0x00010001,30
    HKLM,"%SGDKEY%","ParLabelingLeft",0x00010001,1
    HKLM,"%SGDKEY%","ParLabelingTop",0x00010001,1
    HKLM,"%SGDKEY%","ParLabelingRight",0x00010001,1
    HKLM,"%SGDKEY%","ParLabelingBottom",0x00010001,1
    HKLM,"%SGDKEY%","DT_Left",,"10"
    HKLM,"%SGDKEY%","DT_Top",,"0"
    HKLM,"%SGDKEY%","DT_Width" ,,"1.5"
    HKLM,"%SGDKEY%","DT_Length",,"4.5"
    HKLM,"%SGDKEY%","DT_Border_1",,"2.5"
    HKLM,"%SGDKEY%","DT_Border_2",,"3.5"
    HKLM,"%SGDKEY%","DT_BkTh",,"18"
    HKLM,"%SGDKEY%","DT_MinWhThr",,"15"
    HKLM,"%SGDKEY%","DT_MaxWhThr",,"45"
    HKLM,"%SGDKEY%","ButtonNum",0x00010001,1
    HKLM,"%STIKEY%","MF8300",0x00010001,1
    [CNCAddreg.USB]
    HKLM,"%SGDKEY%","AvailableDriver",0x00010001,1
    [CNCUSDAddreg_XP]
    HKLM,"%WIASGDKEY%","ColorMatch",0x00010001,1
    HKLM,"%WIASGDKEY%","ColorGear",,"%CNC.ColorGear%"
    HKLM,"%WIASGDKEY%","TextEnhance",0x00010001,0
    HKLM,"%WIASGDKEY%","Descreen",0x00010001,0
    HKLM,"%WIASGDKEY%","UnsharpMask",0x00010001,0
    HKLM,"%WIASGDKEY%","HiDefinitionMode",0x00010001,0
    HKLM,"%WIASGDKEY%","ProductId",,"MF8300          "
    HKLM,"%WIASGDKEY%","ButtonNum",0x00010001,1
    HKLM,"%WIASGDKEY%","DspGamma",0x00010001,1
    HKLM,"%WIASTIKEY%","MF8300",0x00010001,1
    HKR,,USDClass,,"{4BA01336-9934-455e-8FB8-4A47A638DF0E}"
    HKCR,CLSID\{4BA01336-9934-455e-8FB8-4A47A638DF0E},,,"Canon USD"
    HKCR,CLSID\{4BA01336-9934-455e-8FB8-4A47A638DF0E}\InProcServer32,,,%11%\CNCC8300.DLL
    HKCR,CLSID\{4BA01336-9934-455e-8FB8-4A47A638DF0E}\InProcServer32,ThreadingModel,,"Both"
    ;  The above GUID is specific to MF8300 and MUST change for a different model.
    [CNCUSDAddreg_VISTA]
    HKCR,CLSID\{DF89C549-D67D-4fb0-A575-547073BFAB11},,,"WIA Driver UI Extension"
    HKCR,CLSID\{DF89C549-D67D-4fb0-A575-547073BFAB11}\shellex\ImageProcessingFilter\{CA0D4D3E-98ED-4787-AF02-4AF2A1303ACC}
    ;  The above GUID is specific to MF8300 and MUST change for a different model.
    HKCR,CLSID\{CA0D4D3E-98ED-4787-AF02-4AF2A1303ACC},,,"Canon Image Processing Filter"
    HKCR,CLSID\{CA0D4D3E-98ED-4787-AF02-4AF2A1303ACC}\InProcServer32,,,%11%\CNCE8300.dll
    HKCR,CLSID\{CA0D4D3E-98ED-4787-AF02-4AF2A1303ACC}\InProcServer32,ThreadingModel,,"Both"
    ;  The above GUID is specific to MF8300 and MUST change for a different model.
    [WiaFiles]
    CNCC8300.DLL
    CNCI8300.DLL
    CNCL8300.DLL
    [Wia2Files]
    CNCC8300.DLL
    CNCI8300.DLL
    CNCL8300.DLL
    CNCE8300.DLL
    [CNCDsFiles]
    CISDS.DS
    SGUI.DLL
    SGUI_RES.DLL
    WIARES.DLL
    IOP.DLL
    ITLIB32.DLL
    SCANINTF.DLL
    TPM.DLL
    CNCFR08.DAT
    MC2.TXT
    JDA_CIMG.DLL
    NBS4MB.DLL
    NBSCOR4M.DLL
    RMSLANTC.DLL
    RSTCOL.DLL
    [MPScanLLD]
    CNCMFP36.INI,,,0x20
    CNCLSI36b.DLL,,,0x20
    CNCLSD36b.DLL,,,0x20
    CNCLSC36b.DLL,,,0x20
    CNCLST36b.DLL,,,0x20
    CNCLSU36b.DLL,,,0x20
    [CNCMediaFiles]
    CSSAMP1.MID
    ;-------------------------------Source Index
    [SourceDisksFiles]
    CNZ005.ICC=1
    ITLIB32.DLL=1
    JDA_CIMG.DLL=1
    NBS4MB.DLL=1
    NBSCOR4M.DLL=1
    RMSLANTC.DLL=1
    RSTCOL.DLL=1
    CISDS.DS=1
    SGUI.DLL=1
    IOP.DLL=1
    SCANINTF.DLL=1
    TPM.DLL=1
    SGUI_RES.DLL=1
    WIARES.DLL=1
    CSSAMP1.MID=1
    CNCFR08.DAT=1
    CNFR08.ICC=1
    MC2.TXT=1
    CNCC8300.DLL=1
    CNCI8300.DLL=1
    CNCL8300.DLL=1
    CNCE8300.DLL=1
    CNCMFP36.INI=1
    CNCLSI36b.DLL=1
    CNCLSD36b.DLL=1
    CNCLSC36b.DLL=1
    CNCLST36b.DLL=1
    CNCLSU36b.DLL=1
    CNCLSO36b.DLL =1
    [SourceDisksNames]
    1=%D1%,scan.cab,
    ;-------------------------------String Aliases
    [Strings]
    Msft="Canon"
    Mfg="Canon"
    SGDKEY="Software\Wow6432Node\Canon\SateraMFP1\ScanGear\11.3\Devices\MF8300"
    STIKEY="Software\Wow6432Node\Canon\SateraMFP1\ScanGear\STI"
    DEFAULTKEYNAME="Software\Wow6432Node\Canon\SateraMFP1\Toolbox Ver4.9\Devices\"
    KEYNAME="\Software\Canon\MFToolbox\"
    WIASGDKEY="Software\Canon\SateraMFP1\WIA\3.0\Devices\MF8300"
    WIASTIKEY="Software\Canon\SateraMFP1\WIA\STI"
    D1="Canon MF8300 Series Setup Disk"
    LPTENUM\CNC.DeviceDesc="Canon MF8300 Series"
    ButtonApp        = "MF Toolbox Ver4.9"
    CNCRFN           = "MF8300"
    CNC.MDL          = "Canon MF8300"
    CNC.SRS          = "Canon MF8300 Series"
    CNC.DeviceDesc   = "Canon MF8300"
    CNC.SPInfo       = "Canon MF8300 Scanner"
    CNC.TwainDS      = "Canon MF8300 Series"
    CNC.ColorGear    = "FR08"
    PushButtonPushed1= "Scan-1"
    PushButtonPushed2= "Scan-2"
    PushButtonPushed3= "Scan-3"
    PushButtonPushed4= "Scan-4"
    CNC.FriendlyName     = "WIA Canon MF8300 Series"
    greeting
    Sixten

    How I fixed it, at least for now:
    1. I've been using OC Genie for a few days, it has been working great on Windows but I guess it was causing many games to crash to the desktop so I decided to turn it off, since then the memory issue started to happen, since this morning.
    2. I can only think of my computer got OC Genie addicted, like addiction to crack or cocaine, and the memory, or call it nervous system, wanted more OC Genie, so it gave it to him and bingo, my 4GB readable, but then I used of trickery and deceit to disable OC Genie again and my 4GB is back again without OC Genie.
    Hope this helps someone.

  • Installing Windows 7 Professional 64 bit drivers för Canon MF8330 Cdn printer/fax/scanner

    Hi!
    After Windows update in april 2014 I cant any longer use the scanning funktion via network from Canon MF8330 Cdn multifunktion printer/fax/scanner machine! It worked fine Before the april Windows update installation.
    I have reinstalled with Canons driver kit 2005b för Windows 7 64 bit. All works fine until the scanner installation ends, then system report that it cannot install the scanner and I have to try installing again. I have done that now several times but it
    helps not. I Think it has something to do with that the Canon scanner drivers isn´t 64 bit files, or the problem is that windows update has replaces saome dll file to a never version that not work with Canon drivers. 
    I have seen that there is a service pack 1 from Canon för Windows 8 and 8,1, can I use that service pack to get a never dll file for scanner or work this only for windows 8 version.
    Have someone a solution to this! I have contacted the Canon support already and they say that its a Microsoft problem!
    Very thanful for help in this case!
    Greetings
    Sixten

    Hi!
    I am installing the drivers from Canons site. It is the newest version 2005b for Windows 7 64 bit to MF8330Cdn Canon multifunction printer/fax/scanner. Installation goes well for the printer and fax but not for scanner drivers. The error message is Could
    not install the scanner. In device manager is there then a unknown device under Image devices. In Device Manager I try to update drivers, but it does not help either, error message is access denied. I am logged on the system with administrator account, therfore
    it is strange that I get the error message access denied.
    I tried earlier to do system restore back to previous time, but it did not work, error was that the system could not do the system restore because of access rights.
    is there anything else I could do.
    Here is the MF36SCN.inf file for scanner installation from Canon, if it can help You to go further with the problem. Is there something strange in the inf file that does not work in Windows 7 64 bit Windows, something shows that ther is also same 32 bits
    parts in the inf file.
    Greetings
    Sixten
    ; MF36SCN.INF  -- Windows Setup File for the MF8300 Series (Windows XP,Vista(64-bit))
    ; Copyright CANON INC. 2009 All Rights Reserved
    ; InfID: {BA7E017E-FA42-4831-A084-AA9E671325EE}
    ; Last Modified: 11-Jun-2009
    [Version]
    Signature="$Windows NT$"
    Class=Image
    ClassGUID={6bdd1fc6-810f-11d0-bec7-08002be2092f}
    ;  The above GUID is the class GUID for all scanners and MUST NOT change
    Provider=%Msft%
    CatalogFile.NTamd64=MF36SCN.CAT
    DriverVer=06/17/2009, 11.3.0.0
    [DestinationDirs]
    DefaultDestDir=11
    CNCDsFiles=10,"twain_32\"%CNCRFN%
    CNCMediaFiles=10,media
    ColorFiles.NT=11,spool\drivers\Color
    [ControlFlags]
    ;ExcludeFromSelect=*
    [Manufacturer]
    %Mfg%=Models,NTamd64.5.1,NTamd64.6.0
    [Models.NTamd64.5.1]
    %LPTENUM\CNC.DeviceDesc%=CNCInstall_XP,USB\VID_04A9&PID_2708&MI_00
    %LPTENUM\CNC.DeviceDesc%=CNCInstallNet_XP,CANON_MFNP&%CNCRFN%
    [Models.NTamd64.6.0]
    %LPTENUM\CNC.DeviceDesc%=CNCInstall_VISTA,USB\VID_04A9&PID_2708&MI_00
    %LPTENUM\CNC.DeviceDesc%=CNCInstallNet_VISTA,CANON_MFNP&%CNCRFN%
    ;........................................ WinXP(64-bit) section
    [CNCInstall_XP.NTamd64]
    Include=sti.inf
    Needs=STI.USBSection
    SubClass=StillImage
    DeviceType=1
    DeviceSubType=0x1
    DeviceData=CNCDeviceData
    AddReg=CNCAddreg,CNCAddreg.USB,CNCUSDAddreg_XP
    CopyFiles=WiaFiles,CNCDsFiles,ColorFiles.NT,MPScanLLD,CNCMediaFiles
    ICMProfiles="sRGB Color Space Profile.icm"
    ; used for push button event
    Capabilities=0x11
    Events=PushButton.Events
    DriverVer=06/17/2009, 11.3.0.0
    FriendlyName=%CNC.FriendlyName%
    [CNCInstall_XP.NTamd64.Services]
    Include=sti.inf
    Needs=STI.USBSection.Services
    [CNCInstall_XP.NTamd64.CoInstallers]
    CopyFiles = ScanCoInstaller_CopyFiles_x64
    AddReg    = ScanCoInstaller_AddReg_x64
    [ScanCoInstaller_CopyFiles_x64]
    CNCLSO36b.dll
    [ScanCoInstaller_AddReg_x64]
    HKR,,CoInstallers32,0x00010000,"CNCLSO36b.dll,Coinstaller_EntryPoint"
    ;........................................ WinVista(64-bit) section
    [CNCInstall_VISTA.NTamd64]
    Include=sti.inf
    Needs=STI.USBSection
    SubClass=StillImage
    DeviceType=1
    DeviceSubType=0x1
    DeviceData=CNCDeviceData_VISTA
    AddReg=CNCAddreg,CNCAddreg.USB,CNCUSDAddreg_XP,CNCUSDAddreg_VISTA
    CopyFiles=Wia2Files,CNCDsFiles,ColorFiles.NT,MPScanLLD,CNCMediaFiles
    ICMProfiles="sRGB Color Space Profile.icm"
    ; used for push button event
    Capabilities=0x11
    Events=PushButton.Events
    DriverVer=06/17/2009, 11.3.0.0
    FriendlyName=%CNC.FriendlyName%
    [CNCInstall_VISTA.NTamd64.Services]
    Include=sti.inf
    Needs=STI.USBSection.Services
    [CNCInstall_VISTA.NTamd64.CoInstallers]
    CopyFiles = ScanCoInstaller_CopyFiles_x64
    AddReg    = ScanCoInstaller_AddReg_x64
    [ScanCoInstaller_CopyFiles_x64]
    CNCLSO36b.dll
    [ScanCoInstaller_AddReg_x64]
    HKR,,CoInstallers32,0x00010000,"CNCLSO36b.dll,Coinstaller_EntryPoint"
    ;........................................ WinXP(64-bit) section(Network)
    [CNCInstallNet_XP.NTamd64]
    Include=sti.inf
    Needs=STI.SerialSection
    SubClass=StillImage
    DeviceType=1
    DeviceSubType=0x1
    DeviceData=CNCDeviceData
    AddReg=CNCAddreg,CNCUSDAddreg_XP
    CopyFiles=WiaFiles,CNCDsFiles,ColorFiles.NT,MPScanLLD,CNCMediaFiles
    ICMProfiles="sRGB Color Space Profile.icm"
    ; used for push button event
    Capabilities=0x11
    Events=PushButton.Events
    DriverVer=06/17/2009, 11.3.0.0
    FriendlyName=%CNC.FriendlyName%
    [CNCInstallNet_XP.NTamd64.Services]
    Include=sti.inf
    Needs=STI.SerialSection.Services
    [CNCInstallNet_XP.NTamd64.CoInstallers]
    CopyFiles = ScanCoInstaller_CopyFiles_x64
    AddReg    = ScanCoInstaller_AddReg_x64
    [ScanCoInstaller_CopyFiles_x64]
    CNCLSO36b.dll
    [ScanCoInstaller_AddReg_x64]
    HKR,,CoInstallers32,0x00010000,"CNCLSO36b.dll,Coinstaller_EntryPoint"
    ;........................................ WinVista(64-bit) section(Network)
    [CNCInstallNet_VISTA.NTamd64]
    Include=sti.inf
    Needs=STI.SerialSection
    SubClass=StillImage
    DeviceType=1
    DeviceSubType=0x1
    DeviceData=CNCDeviceData_VISTA
    AddReg=CNCAddreg,CNCUSDAddreg_XP,CNCUSDAddreg_VISTA
    CopyFiles=Wia2Files,CNCDsFiles,ColorFiles.NT,MPScanLLD,CNCMediaFiles
    ICMProfiles="sRGB Color Space Profile.icm"
    ; used for push button event
    Capabilities=0x11
    Events=PushButton.Events
    DriverVer=06/17/2009, 11.3.0.0
    FriendlyName=%CNC.FriendlyName%
    [CNCInstallNet_VISTA.NTamd64.Services]
    Include=sti.inf
    Needs=STI.SerialSection.Services
    [CNCInstallNet_VISTA.NTamd64.CoInstallers]
    CopyFiles = ScanCoInstaller_CopyFiles_x64
    AddReg    = ScanCoInstaller_AddReg_x64
    [ScanCoInstaller_CopyFiles_x64]
    CNCLSO36b.dll
    [ScanCoInstaller_AddReg_x64]
    HKR,,CoInstallers32,0x00010000,"CNCLSO36b.dll,Coinstaller_EntryPoint"
    ;.......................................... Common Section
    [PushButton.Events]
    PushButtonPushed1=%PushButtonPushed1%,{66F2A894-EC9B-430c-9D52-E8719D200DAC},%ButtonApp%
    PushButtonPushed2=%PushButtonPushed2%,{506AC8D1-E030-4f05-8F8A-4476153E2D6C},%ButtonApp%
    PushButtonPushed3=%PushButtonPushed3%,{9813E8A6-3652-4768-9AD1-C89E9B5CA956},%ButtonApp%
    PushButtonPushed4=%PushButtonPushed4%,{03B58D10-0245-4859-A489-D695C7729FB3},%ButtonApp%
    [ColorFiles.NT]
    CNZ005.ICC
    CNFR08.ICC
    [CNCDeviceData]
    TwainDS=%CNC.TwainDS%
    SpecialInfo=%CNC.SPInfo%
    DeviceKey=%CNCRFN%
    InstallDirectory="\TWAIN_32\%CNCRFN%\"
    KeyNamePath=%KEYNAME%
    DefaultKeyNamePath=%DEFAULTKEYNAME%
    [CNCDeviceData_VISTA]
    TwainDS=%CNC.TwainDS%
    SpecialInfo=%CNC.SPInfo%
    DeviceKey=%CNCRFN%
    InstallDirectory="\TWAIN_32\%CNCRFN%\"
    KeyNamePath=%KEYNAME%
    DefaultKeyNamePath=%DEFAULTKEYNAME%
    UI Class ID={DF89C549-D67D-4fb0-A575-547073BFAB11}
    ;The above GUID reused from sample MUST change for each Model.
    [CNCAddreg]
    HKLM,"%SGDKEY%","DeviceName",,%CNC.MDL%
    HKLM,"%SGDKEY%","SeriesName",,%CNC.SRS%
    HKLM,"%SGDKEY%","Manufacturer",,"Canon Inc."
    HKLM,"%SGDKEY%","ProductFamily",,"TWAIN Scanners"
    HKLM,"%SGDKEY%","ProductName",,%CNC.MDL%
    HKLM,"%SGDKEY%","InstallDirectory",,"%10%\TWAIN_32\%CNCRFN%\"
    HKLM,"%SGDKEY%","DeviceDriver",,"SCANINTF.DLL"
    HKLM,"%SGDKEY%","ProductId",,"MF8300          "
    HKLM,"%SGDKEY%","DataSourcePath",,"%10%\TWAIN_32\%CNCRFN%\cisds.ds"
    HKLM,"%SGDKEY%","TextEnhance",0x00010001,0
    HKLM,"%SGDKEY%","HiDefinitionMode",0x00010001,0
    HKLM,"%SGDKEY%","AutoPreview",0x00010001,0
    HKLM,"%SGDKEY%","AutoClose",0x00010001,0
    HKLM,"%SGDKEY%","SavePreview",0x00010001,1
    HKLM,"%SGDKEY%","DriverDate",,"06 2009"
    HKLM,"%SGDKEY%","DriverVersion",,"11.3.0.0.mf09"
    HKLM,"%SGDKEY%","ColorGear",,%CNC.ColorGear%
    HKLM,"%SGDKEY%","ColorMatch Platen",,"CNFR08.ICC"
    HKLM,"%SGDKEY%","SGIPPDEF",,"CNCFR08.DAT"
    HKLM,"%SGDKEY%","Descreen",0x00010001,0
    HKLM,"%SGDKEY%","Unsharp",0x00010001,3
    HKLM,"%SGDKEY%","MultiLimitThreshold",0x00010001,180
    HKLM,"%SGDKEY%","MultiJackUp",0x00010001,9
    HKLM,"%SGDKEY%","MultiTrimJackUp",0x00010001,20
    HKLM,"%SGDKEY%","CardPhotoDistThr",0x00010001,30
    HKLM,"%SGDKEY%","PhotoTrimThr",0x00010001,210
    HKLM,"%SGDKEY%","PhotoRThr",0x00010001,210
    HKLM,"%SGDKEY%","PhotoGThr",0x00010001,210
    HKLM,"%SGDKEY%","PhotoBThr",0x00010001,210
    HKLM,"%SGDKEY%","CardTrimThr",0x00010001,30
    HKLM,"%SGDKEY%","CardRThr",0x00010001,30
    HKLM,"%SGDKEY%","CardGThr",0x00010001,30
    HKLM,"%SGDKEY%","CardBThr",0x00010001,30
    HKLM,"%SGDKEY%","ParWhiteBlackEth",0x00010001,5
    HKLM,"%SGDKEY%","ParWhiteBlackEthDG",0x00010001,5
    HKLM,"%SGDKEY%","ParWhiteBlackSth",0x00010001,35
    HKLM,"%SGDKEY%","ParWhiteBlackVth",0x00010001,10
    HKLM,"%SGDKEY%","ParLabelingHth",0x00010001,30
    HKLM,"%SGDKEY%","ParLabelingLeft",0x00010001,1
    HKLM,"%SGDKEY%","ParLabelingTop",0x00010001,1
    HKLM,"%SGDKEY%","ParLabelingRight",0x00010001,1
    HKLM,"%SGDKEY%","ParLabelingBottom",0x00010001,1
    HKLM,"%SGDKEY%","DT_Left",,"10"
    HKLM,"%SGDKEY%","DT_Top",,"0"
    HKLM,"%SGDKEY%","DT_Width" ,,"1.5"
    HKLM,"%SGDKEY%","DT_Length",,"4.5"
    HKLM,"%SGDKEY%","DT_Border_1",,"2.5"
    HKLM,"%SGDKEY%","DT_Border_2",,"3.5"
    HKLM,"%SGDKEY%","DT_BkTh",,"18"
    HKLM,"%SGDKEY%","DT_MinWhThr",,"15"
    HKLM,"%SGDKEY%","DT_MaxWhThr",,"45"
    HKLM,"%SGDKEY%","ButtonNum",0x00010001,1
    HKLM,"%STIKEY%","MF8300",0x00010001,1
    [CNCAddreg.USB]
    HKLM,"%SGDKEY%","AvailableDriver",0x00010001,1
    [CNCUSDAddreg_XP]
    HKLM,"%WIASGDKEY%","ColorMatch",0x00010001,1
    HKLM,"%WIASGDKEY%","ColorGear",,"%CNC.ColorGear%"
    HKLM,"%WIASGDKEY%","TextEnhance",0x00010001,0
    HKLM,"%WIASGDKEY%","Descreen",0x00010001,0
    HKLM,"%WIASGDKEY%","UnsharpMask",0x00010001,0
    HKLM,"%WIASGDKEY%","HiDefinitionMode",0x00010001,0
    HKLM,"%WIASGDKEY%","ProductId",,"MF8300          "
    HKLM,"%WIASGDKEY%","ButtonNum",0x00010001,1
    HKLM,"%WIASGDKEY%","DspGamma",0x00010001,1
    HKLM,"%WIASTIKEY%","MF8300",0x00010001,1
    HKR,,USDClass,,"{4BA01336-9934-455e-8FB8-4A47A638DF0E}"
    HKCR,CLSID\{4BA01336-9934-455e-8FB8-4A47A638DF0E},,,"Canon USD"
    HKCR,CLSID\{4BA01336-9934-455e-8FB8-4A47A638DF0E}\InProcServer32,,,%11%\CNCC8300.DLL
    HKCR,CLSID\{4BA01336-9934-455e-8FB8-4A47A638DF0E}\InProcServer32,ThreadingModel,,"Both"
    ;  The above GUID is specific to MF8300 and MUST change for a different model.
    [CNCUSDAddreg_VISTA]
    HKCR,CLSID\{DF89C549-D67D-4fb0-A575-547073BFAB11},,,"WIA Driver UI Extension"
    HKCR,CLSID\{DF89C549-D67D-4fb0-A575-547073BFAB11}\shellex\ImageProcessingFilter\{CA0D4D3E-98ED-4787-AF02-4AF2A1303ACC}
    ;  The above GUID is specific to MF8300 and MUST change for a different model.
    HKCR,CLSID\{CA0D4D3E-98ED-4787-AF02-4AF2A1303ACC},,,"Canon Image Processing Filter"
    HKCR,CLSID\{CA0D4D3E-98ED-4787-AF02-4AF2A1303ACC}\InProcServer32,,,%11%\CNCE8300.dll
    HKCR,CLSID\{CA0D4D3E-98ED-4787-AF02-4AF2A1303ACC}\InProcServer32,ThreadingModel,,"Both"
    ;  The above GUID is specific to MF8300 and MUST change for a different model.
    [WiaFiles]
    CNCC8300.DLL
    CNCI8300.DLL
    CNCL8300.DLL
    [Wia2Files]
    CNCC8300.DLL
    CNCI8300.DLL
    CNCL8300.DLL
    CNCE8300.DLL
    [CNCDsFiles]
    CISDS.DS
    SGUI.DLL
    SGUI_RES.DLL
    WIARES.DLL
    IOP.DLL
    ITLIB32.DLL
    SCANINTF.DLL
    TPM.DLL
    CNCFR08.DAT
    MC2.TXT
    JDA_CIMG.DLL
    NBS4MB.DLL
    NBSCOR4M.DLL
    RMSLANTC.DLL
    RSTCOL.DLL
    [MPScanLLD]
    CNCMFP36.INI,,,0x20
    CNCLSI36b.DLL,,,0x20
    CNCLSD36b.DLL,,,0x20
    CNCLSC36b.DLL,,,0x20
    CNCLST36b.DLL,,,0x20
    CNCLSU36b.DLL,,,0x20
    [CNCMediaFiles]
    CSSAMP1.MID
    ;-------------------------------Source Index
    [SourceDisksFiles]
    CNZ005.ICC=1
    ITLIB32.DLL=1
    JDA_CIMG.DLL=1
    NBS4MB.DLL=1
    NBSCOR4M.DLL=1
    RMSLANTC.DLL=1
    RSTCOL.DLL=1
    CISDS.DS=1
    SGUI.DLL=1
    IOP.DLL=1
    SCANINTF.DLL=1
    TPM.DLL=1
    SGUI_RES.DLL=1
    WIARES.DLL=1
    CSSAMP1.MID=1
    CNCFR08.DAT=1
    CNFR08.ICC=1
    MC2.TXT=1
    CNCC8300.DLL=1
    CNCI8300.DLL=1
    CNCL8300.DLL=1
    CNCE8300.DLL=1
    CNCMFP36.INI=1
    CNCLSI36b.DLL=1
    CNCLSD36b.DLL=1
    CNCLSC36b.DLL=1
    CNCLST36b.DLL=1
    CNCLSU36b.DLL=1
    CNCLSO36b.DLL =1
    [SourceDisksNames]
    1=%D1%,scan.cab,
    ;-------------------------------String Aliases
    [Strings]
    Msft="Canon"
    Mfg="Canon"
    SGDKEY="Software\Wow6432Node\Canon\SateraMFP1\ScanGear\11.3\Devices\MF8300"
    STIKEY="Software\Wow6432Node\Canon\SateraMFP1\ScanGear\STI"
    DEFAULTKEYNAME="Software\Wow6432Node\Canon\SateraMFP1\Toolbox Ver4.9\Devices\"
    KEYNAME="\Software\Canon\MFToolbox\"
    WIASGDKEY="Software\Canon\SateraMFP1\WIA\3.0\Devices\MF8300"
    WIASTIKEY="Software\Canon\SateraMFP1\WIA\STI"
    D1="Canon MF8300 Series Setup Disk"
    LPTENUM\CNC.DeviceDesc="Canon MF8300 Series"
    ButtonApp        = "MF Toolbox Ver4.9"
    CNCRFN           = "MF8300"
    CNC.MDL          = "Canon MF8300"
    CNC.SRS          = "Canon MF8300 Series"
    CNC.DeviceDesc   = "Canon MF8300"
    CNC.SPInfo       = "Canon MF8300 Scanner"
    CNC.TwainDS      = "Canon MF8300 Series"
    CNC.ColorGear    = "FR08"
    PushButtonPushed1= "Scan-1"
    PushButtonPushed2= "Scan-2"
    PushButtonPushed3= "Scan-3"
    PushButtonPushed4= "Scan-4"
    CNC.FriendlyName     = "WIA Canon MF8300 Series"
    greeting
    Sixten

  • How to make Automatically Device driver installation in Win 7/WIn 8 when using RNDIS in Windows Compact

    We are developing a precision instrument that measures Temperature, Pressure and humidity used in the pharmaceutical industry.
    The Instrument is based on Windows Embedded Compact (7.0)
    WE establish a TCP communication vi a USB connection. This is done by the RNDIS Driver.
    When we connect the instrument to a PC we have to do the following in Windows:
    http://developer.toradex.com/knowledge-base/how-to-install-microsoft-rndis-driver-for-windows-7
    The INF that is used is then C:\Windows\inf\rndiscmp.inf
    We want this to be executed automatically
    The way it is automated is by setting the correct entry’s in the registration database on the Instruments. In Windows CE registration database.
    On
    http://www.usb.org/developers/defined_class we think we must set Base Class = EFh, SubClass = 04h and Protocol = 01h.
    But how is this done in the registry on the device?
    Who can help me :-)

    Hi Mads,
    changes in "rndisfn.h" in public folder have no influance on your project, because those files are not built at all. Visual Studio will use this one anyway (which is already built): C:\WINCE700\public\common\oak\target\armv7\retail\rndisfn.dll
    To make use of Microsoft public code, you have to clone this code - that is copy selected source files to BSP folder and adjust DIRS files to include new data in the compilation process.
    To clone RNDIS component, copy rndis folder from C:\WINCE700\public\common\oak\drivers\UsbFn\class
    to C:\WINCE700\platform\YOUR_BSP\Src\COMMON\USBFN.
    Edit source file C:\WINCE700\platform\YOUR_BSP\Src\COMMON\USBFN\rndis\rndisfn\sources:
    DOSYSGEN=1
    TARGETDEFNAME=RNDISFN
    TARGETNAME=RNDISFN
    TARGETTYPE=DYNLINK
    DLLENTRY=_DllEntryCRTStartup
    SOURCES= \
    rndisfn.cpp \
    TARGETLIBS= \
    $(_COMMONSDKROOT)\lib\$(_CPUINDPATH)\ndis.lib \
    $(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\ceddk.lib \
    $(_SYSGENSDKROOT)\lib\$(_CPUINDPATH)\coredll.lib
    SOURCELIBS=\
    $(SG_OUTPUT_ROOT)\platform\$(_TGTPLAT)\lib\$(_CPUINDPATH)\rndismini2.lib \
    $(_PUBLICROOT)\common\oak\lib\$(_CPUINDPATH)\ufnclientlib.lib
    Finally, edit C:\WINCE700\platform\YOUR_BSP\Src\COMMON\USBFN\dirs to include your new component (folder) in the build process:
    DIRS=\
    RNDISKITL \
    RNDIS \
    System will build now new rndisfn.dll, which will replace the original one in the public directory. I hope I didn't forget anything...

Maybe you are looking for