Using .getPixel() to Read Through a MovieClip

Hello Smart People!
I have two images, one overlayed exactly over the other. The image in front is what the user needs to see, but the user behind can be considered to be like a map with different fields of color on it representing different things.
What I am trying to do is that when the user mouses over the image, it reads (via .getPixel) the color info of the image behind which prompts certain messages to be displayed.
I am not having a problem with getting .getPixel() to work since when I just have the behind image (colored "map") showing, the color data for each pixel comes up as expected. But, when I overlay the top image, it shields the back image from being able to be "read" by my .getPixel function.
Is there a way to have a movieClip not "interfere" with movieClips that lay behind it in the stack?
Any help would be appreciated.
-john

getPixel handles BitmapData, it has nothing to do with MovieClips. All you need to do is save this color map clip as a BitmapData object at some point, and then use getPixel to access this data. I am not even sure how you could be calling this method with a MovieClip.

Similar Messages

  • I cannot log into Adobe Reader through my iphone using the Adobe ID and password which work on the w

    I cannot log into Adobe Reader through my iphone using the Adobe ID and password which work on the website.

    Hi Will,
    That's great that you could sign in now.
    I think issue you faced in signing was because email verification was not done before. And when you signed from web client, you might have received a note asking you to do verification. It solved the logging issues you were facing on iPhone as well.
    -Charu

  • To use the same code for many movieclips

    Dear all.
    I am using the flash to build my personal book online. I need zoom  many movieclip, my images.
    i make the code and function perfectly. But I want to find a way to use the same function for all movieclips and so, mantaining my code clean.
    mc_01.addEventListener(MouseEvent.MIDDLE_MOUSE_DOWN, Drag);
    mc_01.addEventListener(MouseEvent.MIDDLE_MOUSE_UP, unDrag);
    mc_02.addEventListener(MouseEvent.MIDDLE_MOUSE_DOWN, Drag);
    mc_02.addEventListener(MouseEvent.MIDDLE_MOUSE_UP, unDrag);
    and many others....
    function Zoom(e:MouseEvent):void
            mc_01.x = 0;  //I try here for this.x but the previews movie, called "Books" is who have changed your x value.
            mc_01.y = 0;
    I
    EDIT: For untangle, the previews movie is called MyAllPhotos and then, contain all movieclips that are each movie clip is one my images

    Hi Mr Kglad.
    And when I call a property like a X position I use this["mc_"+padF(i)].x = 0;  for substitute the mc_01.x = 0 ?
    My problem realy is inside the function. Your loop add an event to my clips and direction to function Drag and UnDrag.
    But inside in this functions, I need get some informations for the clip.
    Here the code:
    function Zoom(e:MouseEvent):void  //Sorry, but the correct name my functions is Zoom and not Drag and unDrag
               var mod:Number = 50;
               mc_01.scaleX += e.delta / mod; //in this name mc what I need to use? this, parent? I try and not function.
               mc_01.scaleY += e.delta / mod;

  • I recently tried to remove widows7 on my macbook air using bootcamp and halfway through it grayed out .The windows 7 is removed but i cant free up the 62gig partition the windows was occupying on my 121gig ssd harddrive please help

    i recently tried to remove widows7 on my macbook air using bootcamp and halfway through it grayed out .The windows 7 is removed but i cant free up the 62gig partition the windows was occupying on my 121gig ssd harddrive please help

    You may have to see about using the Recovery HD partition to attempt to erase and restore useful function of the capacity lost to the former Windows installation.
    And you may have to backup your contents outside the computer to do it. Disk Utility on the Mac OS X historically has not been able to touch a BootCamp created partition; so if BootCamp cannot remove it, then you have to see how to do the equivalent of a reformat of the entire drive (less Recovery partition?) then reinstall your OS X. Maybe from internet recovery, then get your applications, etc from the Mac App store, etc.
    A complete system clone of your OS X on an external HDD would be another method to restore after reformat, of the portion you want whole again, not necessarily the space where Recovery may live.
    There may be (an)other way(s).
    Perhaps someone with recent experience
    in this matter can reply & discuss options.
    With my antiques, they almost know what I want before I tell them.
    Hopefully yours will after you talk to it awhile.
    Good luck & happy computing!

  • I have the app "viPlay" on my iPad and iPhone. Is there any way that it could be available for the Apple TV? I'd like to access my personal videos from my hard drive using the Apple TV through the 'viPlay' app.

    I have the app "viPlay" on my iPad and iPhone. Is there any way that it could be available for the Apple TV? I'd like to access my personal videos from my hard drive using the Apple TV through the 'viPlay' app.

    Welcome to the Apple Community.
    Nobody here will have any information about that since the community is only made up of users like you or I. Anything else is mere speculation and speculation is not permitted here under the Terms of Use for these communities.
    Any responses you may receive may well be removed and would be wholly unreliable in any case.
    If you believe that Apple's product may be enhanced in anyway you can leave feedback here.

  • Reading through a text file and then sorting

    I'm having a lot of problems with this.
    I have to read through a text file and I have to split the string up so that it is seperated into individual tokens. A line from the text file looks like this. addEvent(new Bell(tm + 9000)). I have to grab the addEvent, new, Bell, tm and 9000 and store it in a linkedlist. After reading through the whole text file I have to sort the the linked list based on the number. ie: 9000. Is there any way to do this? I currently break up the text file using a StringTokenizer object but then i am uncertain on how to add it to a linked list and then sort each line based on the number. Any help would be appreciated.
    Joe

    Sorry to bother you Ben but I just can't get my head wrapped around this. Here is exactly what I have to do:
    After reading, Events must be stored in the EventSet according to the time they are to occur. Assume that no time number is more than 8 digits long. Restart() must be able to deal appropriately with any order of the Events. To accomplish this have Restart() save the relevant Event information in an LinkedList of strings and sort the Events by time before adding each event to EventSet. Use the <list>.add() to set up your linked list. This is shown in c09:List1.java and Collections.sort(<list>) shown in c09:ListSortSearch. Modify the Bell() to output a single "Bing!". When you read in a Bell event generate the appropriate number of Bell events as indicated by rings. These must be set to the correct times. This is an alternative to generating the new Bell events within Bell(). It will allow them be sorted into their correct time sequence. At this point the output of the program should be identical the original program.
    After the intitial start, when restarting Restart() must provide to the user the option to recreate the EventSet from the linked list or read in a new file (supplied by the user). This must be achieved by prompting the user at the console. Please also allow the user the option to quit the program at this stage.
    Main Program Code:
    public class GreenhouseControls extends Controller
    private boolean light = false;
    private boolean water = false;
    private String thermostat = "Day";
    private boolean fans = false;
         private class FansOn extends Event
              public FansOn(long eventTime)
                   super(eventTime);
              public void action()
              // Put hardware control code here to
              // physically turn on the Fans.
              fans = true;
              public String description()
                   return "Fan is On";
         private class FansOff extends Event
              public FansOff(long eventTime)
                   super(eventTime);
              public void action()
              // Put hardware control code here to
              // physically turn off the Fans.
              fans = false;
              public String description()
                   return "Fans are Off";
         private class LightOn extends Event
              public LightOn(long eventTime)
                   super(eventTime);
              public void action()
                   // Put hardware control code here to
                   // physically turn on the light.
                   light = true;
              public String description()
                   return "Light is on";
         private class LightOff extends Event
              public LightOff(long eventTime)
                   super(eventTime);
              public void action()
                   // Put hardware control code here to
                   // physically turn off the light.
                   light = false;
              public String description()
                   return "Light is off";
         private class WaterOn extends Event
              public WaterOn(long eventTime)
                   super(eventTime);
              public void action()
                   // Put hardware control code here
                   water = true;
              public String description()
                   return "Greenhouse water is on";
         private class WaterOff extends Event
              public WaterOff(long eventTime)
                   super(eventTime);
              public void action()
                   // Put hardware control code here
                   water = false;
              public String description()
                   return "Greenhouse water is off";
         private class ThermostatNight extends Event
              public ThermostatNight(long eventTime)
                   super(eventTime);
              public void action()
                   // Put hardware control code here
                   thermostat = "Night";
              public String description()
                   return "Thermostat on night setting";
         private class ThermostatDay extends Event
              public ThermostatDay(long eventTime)
                   super(eventTime);
              public void action()
                   // Put hardware control code here
                   thermostat = "Day";
              public String description()
                   return "Thermostat on day setting";
         // An example of an action() that inserts a
         // new one of itself into the event list:
         private int rings;
         private class Bell extends Event
              public Bell(long eventTime)
                   super(eventTime);
              public void action()
                   // Ring every 2 seconds, 'rings' times:
                   System.out.println("Bing!");
                   if(--rings > 0)
              addEvent(new Bell(System.currentTimeMillis() + 2000));
              public String description()
                   return "Ring bell";
         private class Restart extends Event
              public Restart(long eventTime)
                   super(eventTime);
              public void action()      
                   long tm = System.currentTimeMillis();
                   // Instead of hard-wiring, you could parse
                   // configuration information from a text
                   // file here:
              try
              BufferedReader in = new BufferedReader(new FileReader("Event Config.txt"));
              String str;
                   String[] l1 = new String[5];
                   LinkedList l2 = new LinkedList();
              while((str = in.readLine()) != null )
                        StringTokenizer st = new StringTokenizer(str, "(+); ");
                        int nIndex = 0;
                        while (st.hasMoreTokens())
                             l1[nIndex] = st.nextToken();
                        //System.out.println(st.nextToken());
                             nIndex++;
                        l2.add(l1);
                   String[] s1 = (String[])l2.get(1);
                   for(int i = 0; i < s1.length; i++)
                        System.out.println(s1);
                   Comparator comp = s1[4];
                   Collections.sort(l2, comp);
              in.close();
              catch (IOException e)
    rings = 5;
    addEvent(new ThermostatNight(tm));
    addEvent(new LightOn(tm + 1000));
    addEvent(new LightOff(tm + 2000));
    addEvent(new WaterOn(tm + 3000));
    addEvent(new WaterOff(tm + 8000));
    addEvent(new Bell(tm + 9000));
    addEvent(new ThermostatDay(tm + 10000));
    // Can even add a Restart object!
    addEvent(new Restart(tm + 20000));*/
    public String description() {
    return "Restarting system";
    public static void main(String[] args) {
    GreenhouseControls gc =
    new GreenhouseControls();
    long tm = System.currentTimeMillis();
    gc.addEvent(gc.new Restart(tm));
    gc.run();
    } ///:~
    Examples File:
    addEvent(new ThermostatNight(tm));
    addEvent(new Bell(tm + 9000));
    addEvent(new Restart(tm + 20000));
    addEvent(new LightOn(tm + 1000));
    addEvent(new WaterOn(tm + 3000));
    rings = 5;
    addEvent(new FansOn(tm + 4000));
    addEvent(new LightOff(tm + 2000));
    addEvent(new FansOff(tm + 6000));
    addEvent(new WaterOff(tm + 8000));
    addEvent(new WindowMalfunction(tm + 15000));
    addEvent(new ThermostatDay(tm + 10000));
    EventSet.java Code:
    // This is just a way to hold Event objects.
    class EventSet {
    private Event[] events = new Event[100];
    private int index = 0;
    private int next = 0;
    public void add(Event e) {
    if(index >= events.length)
    return; // (In real life, throw exception)
    events[index++] = e;
    public Event getNext() {
    boolean looped = false;
    int start = next;
    do {
    next = (next + 1) % events.length;
    // See if it has looped to the beginning:
    if(start == next) looped = true;
    // If it loops past start, the list
    // is empty:
    if((next == (start + 1) % events.length)
    && looped)
    return null;
    } while(events[next] == null);
    return events[next];
    public void removeCurrent() {
    events[next] = null;
    public class Controller {
    private EventSet es = new EventSet();
    public void addEvent(Event c) { es.add(c); }
    public void run() {
    Event e;
    while((e = es.getNext()) != null) {
    if(e.ready()) {
    e.action();
    System.out.println(e.description());
    es.removeCurrent();
    } ///:~
    Event.java Code
    abstract public class Event {
    private long evtTime;
    public Event(long eventTime) {
    evtTime = eventTime;
    public boolean ready() {
    return System.currentTimeMillis() >= evtTime;
    abstract public void action();
    abstract public String description();
    } ///:~
    Is this problem easier than I think it is? I just don't know what to add to the linkedList. A LinkedList within a linkedList? I find this problem pretty difficult. Any help is muchly appreciated.
    Joe

  • Hi help unlock the phone happened after we installed a new programa we can not get the activation password and ID, I know and still does not stop the phone bought in Israel and what documents should be sent to confirm that my phone Please read through the

    hi help unlock the phone happened after we installed a new programa we can not get the activation password and ID, I know and still does not stop the phone bought in Israel and what documents should be sent to confirm that my phone Please read through the help

    What I am saying is ..........
    The iPhone HAS to be active making calls on the UK carrier network for the carrier to identify as "theirs" and therefore eligible for the Carrier to unlock
    The way to achieve this is to use a PAYG sim making and receiving calls to establish a customer relationship  with the Carrier and then follow the Carrier's process to unlock
    With a PAYG it usually means adding a specified (by the carrier ) amount  usually £15 /£20 depending on the carrier
    This is how O2 function and according to Gemma  this is how Vodafone work

  • My ipod nano this morning has started to tell me the accessory (lightening to 30-pin adaptor) I use for playing it through my docking station is not supported. It worked fine up until last night. Does anyone know why this might be?

    My ipod nano this morning has started to tell me the accessory (lightening to 30-pin adaptor) I use for playing it through my docking station is not supported. It worked fine up until last night. Does anyone know why this might be?

    Clean any debris from the adapter, docking station connector and the connector on the Nano.

  • Hi Guys, I have a problem with Importing Pictures onto my Mac mini with Lion installed by using a Card Reader, What is the problem here so I can get Pictures onto my Computer. ,

    Hi Guys,
    I have a problem with Importing Pictures onto my Mac mini with Lion installed by using a Card Reader,
    What is the problem here so I can get Pictures onto my Computer. ,

    Hi Noob Søren
    There are a few things that are confusing in your question.
    As far as I know, you dont have to install Time Machine on this OS as it is already installed for you. You only need to connect a hard drive to your computer via firewire or usb, click on the Time Machine icon, Open Time Machine Preference in the drop down menu and select a disk: your connected hard drive.
    You can of course reformat this connected device, partition it into a few volumes to organise data if you so wish.
    I find it strange that your mac's hard drive is divided into two volumes... perhaps this was created through bootcamp?
    You can access the configuration of your hd through Applications/Utilities/Disk Utilities.
    Clicking on one of the icons on the right hand panel will bring the details of the contents of your hardDrive and volumes. From there you can decide to erase a partition, reformat etc....
    If your hd contains more than one volume, and one of them is empty, you could decide to remove it. Back up all your important data before doing so.
    Hope this helps
    WN

  • Hide navigation pane of adobe reader through scripting

    Hi.. I'm looking for a script to hide the navigation pane of the adobe reader through scripting, is there any way I can achieve that?
    my main objective is to restrict user from attaching a file by using navigation pane because I'm already giving buttons to attach a file on the pdf and I want user to attach a file ONLY using buttons on the pdf. Can I achieve this by any other way?
    Thanks in advance.
    Sunaif

    Hi,
    you can hide all panes with this script in the docReady:event.
         event.target.viewState = {overViewMode:1};
    More examples:
    http://thelivecycle.blogspot.com/2010/04/xfa-form-control-view-settings.html

  • Strange read-through operation after entry processor work

    Hi.
    We use the combination cache listener - entry processor to do some actions when the data comes to coherence. We use Oracle Coherence Version 3.5.3/465.
    Just after the entry processor has set the new value for the entry, the new "get" operation is called for the cache and jdbc hit is done for this key.
    Here is the entry processor:
    public Object process(Entry entry) {       
            if (!entry.isPresent()) {
                // No entities exist for this CoreMatchingString - creating new Matching unit
                MatchingUnit newUnit = new MatchingUnit(newTrade);
                entry.setValue(newUnit, true);
                return null;
            ((MatchingUnit)entry.getValue()).processMatching(newTrade);
            return null;
        }Very interesting, that if I use entry.setValue(value) without second parameter - I recieve the db hit just on setValue method. According to docs, setValue() with one parameter returns the previous value and its logical, that the cache hit (and therefore the db hit) is done just on set. But I use the overloaded version void setValue(java.lang.Object oValue, boolean fSynthetic), which is said to be light and should not fetch previous version of the object. But this is done anyway! Not on setValue itself, but just after the process() method called.
    Actually it's strange, that coherence tries to fetch the previous value in the case it didn't exist! The cache.invoke(matchingStr, new CCPEntryProcessor(ccp)) is invoked on not existing record and it is created just on invokation. May be it's the bug or the place for optimization.
    Thanks

    bitec wrote:
    Thanks, Robert, for such detailed answer.
    Still not clear for me, why synthetic inserts are debatable. There are lots of cases, when the client simply updates/inserts the record (using setValue()) and does not need to recieve the previous value. If he needs, he will launch the method:Hi Anton,
    it is debatable because the purpose of the fSynthetic flag is NOT so that you can optimize a cache store operation away. Synthetic event means that this is not real change in the data set triggered by the user, it is something Coherence has done on the backing map / on the cache for its own reasons and decisions to be able to provide high-availability to the data, and it only changes that particular Coherence node's subset of data but does not have a meaning related to the actually existing full data set. Such reasons are partition movement and cache eviction (or possibly any other reasons why Coherence would want to change the content of the backing map without telling the user that anything has changed).
    If you set the synthetic flag, you are trying to masquerade a real data change as an event which Coherence decided to trigger. This is why it is debatable. Also, synthetic backing map events may not always lead to dispatching cache events (for partition rebalance they definitely not). This optimization may also be extended to synthetic cache events.
    java.lang.Object setValue(java.lang.Object oValue)and recieve the previous value. If he doesn't, he calls:
    void setValue(java.lang.Object oValue, boolean fSynthetic)and DOESN'T recieve the previous value as method is marked void. Thus he cannot get the previous value anyhow using this API, except of the direct manual db call. Yep, because Coherence is not interested in the old value in case of a synthetic event. The synthetic methods exist so that some entry can be changed in Coherence (usually by Coherence itself) in a way that it indicates a synthetic event so that listeners are not notified.
    Some valid uses for such functionality for setValue invoked by user code could be compacting some cached value and replacing the value the backing map stores with the compacted representation, which does not mean a change in the meaning of the actual cached value, only the representation changes. Of course if the setValue(2) method does not actually honor the synthetic flag, then such functionality will still incur all the costs of a normal setValue(1) call.
    But the previous value is anyway fetched by Coherence itself just after process() and client anyway doesn't get it! But any listeners on the cache may need to get it due to cache semantics reasons.
    In this case I regard this as the bug, cause the client, which uses this API doesn't expect the cache hit to take place (no return value for this overloaded setValue() method), but it takes and leads to some extra problems, resulting from read-through mechanizm.
    I would not regard it as a bug, it is probably the case of documenting a possible optimization too early, when it ultimately did not get implemented. I definitely would not try to abuse it to set a value without triggering a db fetch, as again, the intention of the synthetic flag is related not only to the cache loader functionality, but also to events and marking that a change indicates a real data change or a Coherence data management action.
    Now I understand why coherence does not know, whether this is inserted or updated value, thanks for details.
    Anton.
    *Edited: I thought about this problem from the point of the oracle user, but may be this additional hit is necessary for event producers, which need to make the events, containing old/new values. In this case this seems to be the correct behaviour.... Seems that I need some other workaround to avoid db hit. The best workaround is the empty load() method for cachestore...You can try to find a workaround, but it is an ugly can of worms, because of the scenario when more than one thread tries to load the same entry, and some of them try to load it with a reason.
    You may try to put some data into thread-local to indicate that you don't really want to load that particular key. The problem is that depending on configuration and race conditions your cache loader may not be called to clean up that thread-local as some other thread may just be invoked right now and in that case its return value is going to be returned to all other threads, too, so you may end up with a polluted thread.
    Best regards,
    Robert
    Edited by: robvarga on Oct 15, 2010 4:25 PM

  • Read-through configuration problems

    Hi!
    I have problem with read-through example. The DataLoader object is created (somewhere in Coherence) but method load(Object key) is never called. Please help.
    public class DataLoader extends AbstractCacheLoader {
        private static HashMap<String, String> hashMap = new HashMap<String, String>();
        static {
            hashMap.put("A", "a");
            hashMap.put("B", "b");
            hashMap.put("C", "c");
            hashMap.put("D", "d");
            hashMap.put("E", "f");
            hashMap.put("F", "g");
        public DataLoader() {
            System.out.println("Instance of DataLoader");
        public Object load(Object key) {
            return hashMap.get(key);
    }Config files:
    <cache-config>
        <caching-scheme-mapping>
            <cache-mapping>
                <cache-name>ABC</cache-name>
                <scheme-name>SamplePartitionedDatabaseScheme</scheme-name>
            </cache-mapping>
        </caching-scheme-mapping>
        <caching-schemes>
            <distributed-scheme>
                <scheme-name>SamplePartitionedDatabaseScheme</scheme-name>
                <backing-map-scheme>
                    <read-write-backing-map-scheme>
                        <scheme-ref>SampleDatabaseScheme</scheme-ref>
                    </read-write-backing-map-scheme>
                </backing-map-scheme>
            </distributed-scheme>
            <read-write-backing-map-scheme>
                <scheme-name>SampleDatabaseScheme</scheme-name>
                <internal-cache-scheme>
                    <local-scheme>
                        <scheme-ref>SampleMemoryScheme</scheme-ref>
                    </local-scheme>
                </internal-cache-scheme>
                <cachestore-scheme>
                    <class-scheme>
                        <class-name>com.example.DataLoader</class-name>
                    </class-scheme>
                </cachestore-scheme>
            </read-write-backing-map-scheme>
            <local-scheme>
                <scheme-name>SampleMemoryScheme</scheme-name>
            </local-scheme>
        </caching-schemes>
    </cache-config>and
    <coherence>
        <cluster-config>
            <member-identity>
                <cluster-name>thecluster</cluster-name>
            </member-identity>
            <multicast-listener>
                <port>9100</port>
                <time-to-live>0</time-to-live>
            </multicast-listener>
        </cluster-config>
    </coherence>Starting server
    package com.example;
    import com.tangosol.net.DefaultCacheServer;
    import com.tangosol.net.DefaultConfigurableCacheFactory;
    public class Server {
        public static void main(String[] args) {
            DefaultConfigurableCacheFactory factory;
            factory = new DefaultConfigurableCacheFactory();
            DefaultCacheServer dcs = new DefaultCacheServer(factory);
            dcs.startAndMonitor(5000);
    }Getting data
    package com.example;
    import com.tangosol.net.CacheFactory;
    import com.tangosol.net.NamedCache;
    public class Reader {
        public static void main(String[] args) {
            CacheFactory.ensureCluster();
            NamedCache cache = CacheFactory.getCache("ABC");
            System.out.println("Value in cache is: " + cache.get("A"));
            System.out.println("Value in cache is: " + cache.get("B"));
            System.out.println("Value in cache is: " + cache.get("C"));
            System.out.println("Value in cache is: " + cache.get("D"));
    }Result
    Value in cache is: null
    Value in cache is: null
    Value in cache is: null
    Value in cache is: null

    Hi St,
    Actually, looking at the code again, your server will not be using your custom configuration.
    I'm not sure why you have written the code like that but there is no need to create a DefaultConfigurableCacheFactory instance; Coherence will take care of that. As you have used the default constructor for DefaultConfigurableCacheFactory it will be using a configuration file called coherence-cache-config.xml; is that what your file is called?
    All your Server main method needs to do is this...
    package com.example;
    import com.tangosol.net.DefaultCacheServer;
    public class Server {
        public static void main(String[] args) {
            DefaultCacheServer.main(args);
    }Which is actually nothing more than running DefaultCacheServer, so you do not even need a custom Server class.
    JK

  • Set a new expiry delay for entries added in the cache by a read through

    Hi,
    I have an application that uses an Oracle Coherence cache backed by a database. Each item that is added in the cache must have a custom expiry delay computed from its content.
    Is it possible to set a new expiry delay for the entries loaded in the cache from the database by a read through operation?
    I tried setting a new expiry delay in the load method of the BinaryEntryStore, but it is ignored and the default expiry of the corresponding cache is used instead. Also I tried using a MapTrigger, but the entries added in the cache by a read through operation are not intercepted by the MapTrigger.
    Thanks,
    Adrian

    What we do (not sure if it proper way, but it worked for us) is extend the LocalCache and override the put method.
    public Object put(
    Object oKey,
    Object oValue,
    long expiry)
    long newexpiry = xxxxx;
    return super.put(oKey, oValue, newexpiry);
    }

  • Send email to muliple clients using Oracle Forms 6i through MS Outlook 2003

    I am working on oracle Forms 6i and Oracle 9i (9.2.0.1) database. My requirement is How to trigger email sending to multiple clients at a time while using Oracle Forms 6i through Microsoft Outlook 2003?
    To do this I have written the following code.
    PROCEDURE send_mail IS
    OutlookApp OLE2.OBJ_TYPE;
    NameSpace OLE2.OBJ_TYPE;
    MailItem OLE2.OBJ_TYPE;
    OLEPARAM OLE2.LIST_TYPE;
    Send OLE2.OBJ_TYPE;
    Attachments OLE2.OBJ_TYPE;
    Attachment_dummy OLE2.OBJ_TYPE;
    var1 varchar2(1000);
    Begin
    var1 := :mapiole.message;
    OutlookApp := OLE2.CREATE_OBJ('Outlook.Application');
    OLEPARAM := OLE2.CREATE_ARGLIST;
    OLE2.ADD_ARG(OLEPARAM,'MAPI');
    NameSpace := OLE2.INVOKE_OBJ(OutlookApp,'GetNameSpace',OLEPARAM) ;
    OLE2.DESTROY_ARGLIST(OLEPARAM);
    OLEPARAM := OLE2.CREATE_ARGLIST;
    OLE2.ADD_ARG(OLEPARAM,0);
    MailItem := OLE2.INVOKE_OBJ(OutlookApp,'CreateItem',OLEPARAM);
    OLE2.DESTROY_ARGLIST(OLEPARAM);
    OLE2.SET_PROPERTY(MailItem,'To',:to);
    OLE2.SET_PROPERTY(MailItem,'Subject',:subject);
    OLE2.SET_PROPERTY(MailItem,'Body', var1);
    --add an attachment
    if :mapiole.attach is not null then
    Attachments := OLE2.GET_OBJ_PROPERTY(MailItem,'Attachments');
    OLEPARAM := OLE2.CREATE_ARGLIST;
    OLE2.ADD_ARG(OLEPARAM,:attach);
    Attachment_dummy := OLE2.INVOKE_OBJ(Attachments,'add',OLEPARAM);
    OLE2.DESTROY_ARGLIST(OLEPARAM);
    end if;
    Send := OLE2.INVOKE_OBJ(MailItem,'Send');
    --destroy objects
    OLE2.RELEASE_OBJ(MailItem);
    OLE2.RELEASE_OBJ(NameSpace);
    OLE2.RELEASE_OBJ(OutlookApp);
    END;
    Create a block called MAPIOLE with the following canvas layout:
    To:      ============================
    Subject: ============================
    Message: ============================
    ============================
    Attachment: ============================           SEND      
    When I press the SEND button then
    Error comes "FRM-40735: WHEN-BUTTON-PRESSED trigger raised unhandled exception
    ORA-305500
    How can I do this?
    Please help me.
    Thanks.

    Do you have a requirement to use MS-Outlook from the Client or simple send email to a list of recipients? If the requirement is simply to send email to a list of recipients, I suggest you use UTL_SMTP from the database to send your email rather than OLE to Outlook on the Users computer. Search OTN or the forums for 'MAILDEMO' and you will find many examples on how to send email from the database.
    Hope this helps.
    Craig...

  • Send email using Oracle Forms 6i through MS Outlook 2003

    I am working on oracle Forms 6i and Oracle 9i (9.2.0.1) database. My requirement is How to trigger email sending to clients while using Oracle Forms 6i through Microsoft Outlook 2003?
    To do this I have written the following code.
    PROCEDURE send_mail IS
    OutlookApp OLE2.OBJ_TYPE;
    NameSpace OLE2.OBJ_TYPE;
    MailItem OLE2.OBJ_TYPE;
    OLEPARAM OLE2.LIST_TYPE;
    Send OLE2.OBJ_TYPE;
    Attachments OLE2.OBJ_TYPE;
    Attachment_dummy OLE2.OBJ_TYPE;
    var1 varchar2(1000);
    Begin
    var1 := :mapiole.message;
    OutlookApp := OLE2.CREATE_OBJ('Outlook.Application');
    OLEPARAM := OLE2.CREATE_ARGLIST;
    OLE2.ADD_ARG(OLEPARAM,'MAPI');
    NameSpace := OLE2.INVOKE_OBJ(OutlookApp,'GetNameSpace',OLEPARAM) ;
    OLE2.DESTROY_ARGLIST(OLEPARAM);
    OLEPARAM := OLE2.CREATE_ARGLIST;
    OLE2.ADD_ARG(OLEPARAM,0);
    MailItem := OLE2.INVOKE_OBJ(OutlookApp,'CreateItem',OLEPARAM);
    OLE2.DESTROY_ARGLIST(OLEPARAM);
    OLE2.SET_PROPERTY(MailItem,'To',:to);
    OLE2.SET_PROPERTY(MailItem,'Subject',:subject);
    OLE2.SET_PROPERTY(MailItem,'Body', var1);
    --add an attachment
    if :mapiole.attach is not null then
              Attachments := OLE2.GET_OBJ_PROPERTY(MailItem,'Attachments');
              OLEPARAM := OLE2.CREATE_ARGLIST;
              OLE2.ADD_ARG(OLEPARAM,:attach);
              Attachment_dummy := OLE2.INVOKE_OBJ(Attachments,'add',OLEPARAM);
              OLE2.DESTROY_ARGLIST(OLEPARAM);
    end if;
    Send := OLE2.INVOKE_OBJ(MailItem,'Send');
    --destroy objects
    OLE2.RELEASE_OBJ(MailItem);
    OLE2.RELEASE_OBJ(NameSpace);
    OLE2.RELEASE_OBJ(OutlookApp);
    END;
    Create a block called MAPIOLE with the following canvas layout:
    || To: |============================|
    |
    | Subject: |============================|
    |
    | Message: |============================ |
    |============================|
    | Attachment: |============================| |SEND | |
    When I press the SEND button then
    Microsoft Office Outlook window open containing the message below.
    A program is trying to automatically send e-mail on your behalf.
    Do you want to allow this?
    If this is unexpected,it may be a virus and you should choose "No".
    Yes No Help Button are there.
    If choose No then
    Error comes "FRM-40735: WHEN-BUTTON-PRESSED trigger raised unhandled exception
    ORA-305500
    else Message send successfully.
    I want not to open Outlook Message window and message automatically send to given email id.
    How can I do this?
    Please help me.
    Thanks.

    Try disable warnings:
    Visual Basic 6 (VBA)
    OlSecurityManager.ConnectTo OutlookApp
    OlSecurityManager.DisableOOMWarnings = True
    On Error Goto Finally
    '... any action with protected objects ...
    Finally:
    OlSecurityManager.DisableOOMWarnings = False
    If you find correct syntax with OLE2 post your code ;)

Maybe you are looking for

  • Using BI to generate XML file - no formatting required

    If I just want the XML file from BI PUblisher (ie in the flat file format) - I don't need to use a template (ie excel, RTF, HTML etc) is this possible?? Do I need to attach a dummy template against the data template definition or could I simply just

  • Problem in connecting SQL developer to Oracle database

    Hi,I don't know this is the correct forum for my problem I Just installed   Oracle Sql developer 3.2.I encountered a problem while creating a new connection with Oracle database 11g.. The error message says "Status : Failure -Test failed: The Network

  • How come my ipod wont sync new songs?

    my ipod touch wont sync new songs but they appare on itunes when its connected but when i disconect it there not there can some one help me?

  • Installing AutoDesk using Parallels on OSX/MBP/2Gb/2.16CoreDuo

    Am I plum out of luck here? I am trying to install AutoCad Architecture 2007 and just stuck on Disk 2, it just does not seem to install. I am such a Mac Person that I am not sure what else I should be doing. I did try to click on the disk image from

  • How to Select the duplicate records in the table

    Hi SELECT * FROM gin A WHERE A.sale_order_id IN ( SELECT sale_order_id FROM gin GROUP BY sale_order_id HAVING COUNT(sale_order_id)>1) AND A.ROWID!=MIN (ROWID)) ERROR at line 4: ORA-00934: group function is not allowed here Thanks Vikas Singhal